Mientras se construye una aplicación IoT, hay una necesidad de controlar y gestionar el dispositivos de borde de la aplicación del administrador. Entonces, nuestraMQTT Broker(CrystalMQ) se ha integrado con REST API para ayudarle a controlar sus dispositivos de borde a través de la API REST. Puedes enviar mensajes, añadir nuevos claves de autenticación, obtener detalles del cliente, y hacer más a través de la API. Esta documentación proporciona a guía completa para los desarrolladores para construir aplicaciones IoT utilizando la API RESTful nuestro corredor de mensajería. Refiriéndonos MQTT Integración con REST APIblog para saber más.
Establecer datos brutos en el cuerpo.
Todos los campos del parámetro deben ser dados como parámetro.
Una vez que se verifican las credenciales de autenticación que ingresa, usted recibirá respuesta. Luego crea autorización y establece token de portador. Y para todos los comandos de API excepto el login, es necesario establecer la autorización.
Obtener Método envía solicitud al servidor para recopilar datos. Establecer el A continuación parámetros como se indica.
Accede a una lista de nombres de usuario de MQTT junto con los clientes que se ha concedido acceso a cada nombre de usuario. Esto ayuda a monitorizar y gestionar uso credencial.
#
Solicitud de ejemplo
Respuesta:
Sobre el éxito:
{}
"status": "success",
"data": {}
"credenciales":
{}
"mqtt_username": "mqt_user1",
"clientes": "client1,client2"
}
]
}
"Mensaje": "MQTT Credenciales y los correspondientes Ids del Cliente"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Agregar nuevas credenciales de MQTT o actualizar las existentes junto con la lista asociada de clientes autorizados. Esta operación le permite gestionar y configurar mapas de usuario-cliente, garantizando un control de acceso adecuado y credencial gestión.
Puesto
/crystalmq/api/v1/mqtt-credentials
{}
"status": "success",
"Mensaje": "Agregado MQTT Credenciales - MQTT Nombre de usuario: mqtt_user1 para
Lista de clientes: cliente1, cliente.,dev*"
}
Mala solicitud - parámetros faltantes o inválidos
{}
"status": "error",
"Mensaje": "Mising parámetro requerido: mqt_username / mqt_password /
clientes"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Elimina todas las credenciales creadas de MQTT. Esta acción aclara todas las cartografías de usuario-cliente, revocando efectivamente el acceso y asegurando que no Las credenciales siguen activas.
Suprimir
/crystalmq/api/v1/mqtt-credentials
Respuesta:
Sobre el éxito
{}
"status": "success",
"Mensaje": "Deleted MQTT Nombre de usuario: mqtt_user1"
}
Parámetros perdidos o inválidos
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: mqtt_username"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Obtenga la lista de control de acceso al tema (ACL) para el cliente especificado IDs y/o MQTT Nombres de usuario. Esto proporciona información detallada sobre qué temas cada uno cliente o usuario está autorizado a acceder, ayudándole a gestionar permisos a nivel de temas efectivamente.
/crystalmq/api/v1/acl
Respuesta:
Sobre el éxito:
{}
"status": "success",
"data": {}
"acl":
"clientes": {}
"AdicionalProp1": {
"publish":
"access": "allow",
"topics":
"topic1",
"topic2"
]
}
"Suscribir": {}
"access": "allow",
"topics":
"topic1",
"topic2"
]
}
}
"AdicionalProp2": {
"publish":
"access": "allow",
"topics":
"topic1",
"topic2"
]
}
"Suscribir": {}
"access": "allow",
"topics":
"topic1",
"topic2"
]
}
}
"additionalProp3": {
"publish":
"access": "allow",
"topics":
"topic1",
"topic2"
]
}
"Suscribir": {}
"access": "allow",
"topics":
"topic1",
"topic2"
]
}
}
}
"mqtt_username": {}
"AdicionalProp1": {
"publish":
"access": "allow",
"topics":
"topic1",
"topic2"
]
}
"Suscribir": {}
"access": "allow",
"topics":
"topic1",
"topic2"
]
}
}
"Mensaje": "Lista de control de acceso basado en temas"
}
Mala solicitud - parámetros faltantes o inválidos
{}
"status": "error",
"Mensaje": "Mising parámetro requerido: clientid / mqt_username"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Agregar o actualizar la Lista de Control de Accesos Tópicos (ACL) para un ID de cliente o MQTT Nombre de usuario. Asegúrese de que sólo uno de mqt_username o clienteide está incluido en el cuerpo de solicitud.
/crystalmq/api/v1/acl
Valor de ejemplo
Respuesta:
Sobre el éxito
{}
"status": "success",
"Mensaje": "Lista de Control de Acceso Actualizado para Cliente: clienteide"
}
Mala petición - O mqtt_username O clienteide debe ser dado; pero no ambos
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: O mqtt_username O clientid debe ser
dado
}
Token de API no autorizada - faltante o inválido
{}
"status": "error",
"Mensaje": "Unautorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Eliminar la Lista de Control de Accesos Tópicos (ACL) para un ID de Cliente o MQTT Nombre de usuario. Asegúrese de que sólo uno, ya sea mqtt_username o clienteid, se proporciona en el cuerpo de solicitud.
/crystalmq/api/v1/acl
Parámetros:
Nombre | Descripción |
---|---|
cliente Identificado |
ID del cliente |
Respuesta:
Sobre el éxito
{}
"status": "success",
"Mensaje": "Lista de control de acceso eliminado para ClienteId: mqtt_client1 si el ClienteId
existe.
MQTT Usuario basado ACL será aplicado para este Cliente."
}
Mala solicitud - parámetro faltante o inválido
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: clienteid"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Obtener el recuento total de clientes categorizados por su estado actual. Esto proporciona un panorama detallado del activo, inactivo, y otros estados clientes, ayudando en la supervisión y gestión efectivas.
/crystalmq/api/v1/clients/count
Solicitud de ejemplo
Respuesta:
Sobre el éxito
{}
"status": "success",
"data": {}
"activo": 100,
"inactivo": 50,
"todos": 150
}
"Mensaje": "Número de clientes"
}
Malas solicitudes - parámetros inválidos
{}
"status": "error",
"Mensaje": "Valor del parámetro inválido para el estado"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Proporciona información detallada sobre un cliente en particular. Esto ayuda a monitorizar y solucionar problemas a clientes individuales proporcionando información sobre su actividad y configuración.
/crystalmq/api/v1/clients/info
Solicitud de ejemplo
Respuesta:
Sobre el éxito
{}
"status": "success",
"data": {}
"clientid": "client123",
"mqtt_version": 5,
"status": "active",
"status_timestamp": "2024-07-17T12:00:00Z",
"ip": "192.168.1.100",
"keep_alive": 60,
"clean_session": verdadero,
"session_expiry_interval": 3600
}
"Mensaje": "Información detallada del cliente123"
}
Malas solicitudes - parámetro faltante o inválido
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: clienteid"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Obtenga la última información para un cliente MQTT específico o para todos los clientes. Esto proporciona detalles sobre el último mensaje de voluntad establecido para los clientes, que se utiliza para notificar a otros clientes de una desconexión inesperada.
/crystalmq/api/v1/clients/last-will
Parámetros:
PARAMETER | VALUE DETAIL |
---|---|
ID de cliente | El ID del cliente para el cual se solicita información por última vez. |
Solicitud de ejemplo
Respuesta:
Cuando el dispositivo se conecta:
{}
"status": "success",
"data": {}
"client_id": {}
"AdicionalProp1": {
"última voluntad": {}
"topic": "last/will",
"Mensaje": "Este es el último mensaje de voluntad",
"qos": 1,
"retain": verdadero,
"propiedades": {}
"Prop1 adicional": 300,
"AdicionalProp2": 300,
"AdicionalProp3": 300
}
}
}
"AdicionalProp2": {
"última voluntad": {}
"topic": "last/will",
"Mensaje": "Este es el último mensaje de voluntad",
"qos": 1,
"retain": verdadero,
"propiedades": {}
"Prop1 adicional": 300,
"AdicionalProp2": 300,
"AdicionalProp3": 300
}
}
}
"Mensaje": "Última Voluntad de Cliente(s)"
}
Mala solicitud - pareímetro faltante o inválido
{}
"status": "error",
"Mensaje": "Failed to retrieve last will information"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Desconecta a un cliente MQTT5 en particular. Esta acción termina la corriente del cliente período de sesiones, detener cualquier comunicación en curso y liberar recursos.
/crystalmq/api/v1/clients/disconnect
Respuesta:
Sobre el éxito cuando el límite es 5:
{}
"status": "success",
"Mensaje": "Desconectado el Cliente: cliente123"
}
Mala solicitud - parámetro faltante o inválido
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: clienteid"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Obtenga la lista de suscripciones para todos los clientes o para un cliente específico cuando un cliente Se proporciona identificación. Esto le permite ver a qué temas se suscribe cada cliente, ayudando en gestión de suscripción.
/crystalmq/api/v1/clients/subscriptions
Parámetros:
PARAMETER | VALUE DETAIL |
---|---|
cliente id | El ID del cliente cuyas suscripciones deben recuperarse. |
Solicitud de ejemplo
Respuesta:
Sobre el éxito
{}
"status": "success",
"data": {}
"clientes": {}
"AdicionalProp1": {
"suscripciones": [
{}
"filtro": "topic/filter",
"qos": 1,
"subscription_options": {}
"subscription_identifier": 1,
"user_property": "property_value",
"no_local": verdadero,
"retain_handling": 0,
"retain_as_published": 1
}
}
]
}
"AdicionalProp2": {
"suscripciones": [
{}
"filtro": "topic/filter",
"qos": 1,
"subscription_options": {}
"subscription_identifier": 1,
"user_property": "property_value",
"no_local": verdadero,
"retain_handling": 0,
"retain_as_published": 1
}
}
]
}
"mensaje": "Suscripciones locales"
}
Mala solicitud - parámetro faltante o inválido
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: clienteid"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Obtener una lista completa de clientes categorizados por su estado actual. Esto la recuperación proporciona información sobre la actividad y el estado del cliente, ayudándole a supervisar y gestionar las conexiones de cliente de manera efectiva.
/crystalmq/api/v1/clients
Respuesta:
Sobre el éxito
{}
"status": "success",
"data": {}
"activo":
"client1",
"client2"
]
"inactivo":
"client3",
"client4"
]
}
"Mensaje": "Client Ids"
}
Mala solicitud - parámetro inválido
{}
"status": "error",
"Mensaje": "Valor del parámetro inválido para el estado"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Traiga una lista de clientes actualmente suscritos a un tema específico de MQTT. Esto proporciona información sobre la cual los clientes reciben mensajes del tema.
/crystalmq/api/v1/topics/subscriptions
Solicitud de ejemplo
Respuesta:
Sobre el éxito
{}
"status": "success",
"data": {}
"clientes": {}
"AdicionalProp1": {
"filtro": "topic/filter",
"qos": 1,
"subscription_options": {}
"subscription_identifier": 1,
"user_property": "property_value",
"no_local": verdadero,
"retain_handling": 0,
"retain_as_published": 1
}
}
"AdicionalProp2": {
"filtro": "topic/filter",
"qos": 1,
"subscription_options": {}
"subscription_identifier": 1,
"user_property": "property_value",
"no_local": verdadero,
"retain_handling": 0,
"retain_as_published": 1
}
}
"Mensaje": "Clients suscritos al tema"
}
Malas solicitudes - parámetros perdidos o inválidos
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: tema"
}
No autorizado
{}
"status": "error",
"Mensaje": "Usuario no autorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Acceda a los últimos eventos registrados por el corredor, ofreciendo información sobre los últimos actividades e interacciones del sistema. Esta función ayuda a monitorizar las tendencias actuales y solucionar cualquier problema rápidamente.
/crystalmq/api/v1/recent-events
Solicitud de ejemplo
Respuesta:
Sobre el éxito
{}
"status": "success",
"data":
{}
"cliente": "clent001",
"topic": "/devices/+/data",
"evento": "Event data here",
"timestamp": "2024-07-17T14:30:00Z",
"propiedades": {}
"qos": 1
}
}
]
"Mensaje": "Event(s) recibido de Cliente(s)"
} {}
"status": "success",
"data":
{}
"cliente": "clent001",
"topic": "/devices/+/data",
"evento": "Event data here",
"timestamp": "2024-07-17T14:30:00Z",
"propiedades": {}
"qos": 1
}
}
]
"Mensaje": "Event(s) recibido de Cliente(s)"
}
Bad request due to missing or invalid data
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: tema"
}
No autorizado
{}
"status": "error",
"Mensaje": "Unautorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Busque una lista de los comandos más recientes enviados a los clientes. Esta característica proporciona información en actividades recientes de comando, ayudándole a rastrear y revisar las interacciones cliente efectivamente.
/crystalmq/api/v1/recent-commands
Respuesta:
Sobre el éxito
{}
"status": "success",
"data":
{}
"cliente": "clent001",
"topic": "/devices/+/data",
"comandante": "GET",
"timestamp": "2024-07-17T14:30:00Z",
"propiedades": {}
"qos": "1"
}
}
]
}
Bad request due to missing or invalid data
Faltan parámetros:
{}
"status": "error",
"Mensaje": "Mising requerido parámetro: tema"
}
No autorizado
{}
"status": "error",
"Mensaje": "Unautorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}
Enviar un comando a un cliente específico por publicarlo a un tema designado. Esta acción le permite controlar remotamente o instruir a los clientes sobre la base de sus temas suscritos.
/crystalmq/api/v1/send-command
Solicitud de ejemplo
Respuesta:
Sobre el éxito
{}
"status": "success",
"Mensaje": "Comandante enviado al Cliente: cliente123"
}
Bad request due to missing or invalid data
Faltan parámetros:
{}
"status": "error",
"Mensaje": "Misesión del parámetro requerido: clienteide / tema"
}
No autorizado
{}
"status": "error",
"Mensaje": "Unautorizado"
}
Error de servidor interno
{}
"status": "error",
"Mensaje": "Failed"
}