MQTT Broker REST API Documentación

Introducción

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.


Básicos

Para puestos

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.

Para conseguir

Obtener Método envía solicitud al servidor para recopilar datos. Establecer el A continuación parámetros como se indica.

  • Key and value in header type.
  • Tipo de contenido y autorización en el campo clave.
  • Valor para el tipo de contenido como aplicación/json y el valor token del portador.
Obtener MQTT Credenciales

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.

Método:

#

/crystalmq/api/v1/mqtt-credentials

Solicitud de ejemplo

curl --location '/crystalmq/api/v1/mqtt-credentials' \
--header 'Acepto: aplicación/json' \
--header 'Authorization: Bearer'

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"
}

Add/Update MQTT Credenciales

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.

Método:

Puesto

/crystalmq/api/v1/mqtt-credentials

Solicitud de ejemplo
{}
"mqtt_username": "mqt_user1",
"mqtt_password": "mqt_pass1",
"clientes": "cliente1, cliente.,dev*"
}
Respuesta:
Sobre el éxito:

{}
"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"
}

Suprímase MQTT Credenciales

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.

Método:

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"
}

ACL

Obtener lista de control de acceso a la imagen

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.

Método:
#

/crystalmq/api/v1/acl

Solicitud de ejemplo
curl -location '//crystalmq/api/v1/acl?clientid=%3Cstring%3E reducidamqtt_username=%3Cstring%3E' \
--header 'Acepto: aplicación/json' \
--header 'Authorization: Bearer '

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/ actualizar la lista de control de acceso a temas para un ID de cliente o MQTT Nombre de usuario

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.

Método:
Puesto

/crystalmq/api/v1/acl

Valor de ejemplo

{}
"mqtt_username": "string",
"clientid": "string",
"publish_access": "allow",
"publish_topics": "#",
"subscribe_access": "allow",
"subscribe_topics": "#
}

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 acceso para un ID de cliente o nombre de usuario de MQTT

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.

Método:
DELETE

/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"
}

Clientes

Contar con los clientes

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.

Método:
Vamos.

/crystalmq/api/v1/clients/count

Solicitud de ejemplo

curl --location '//crystalmq/api/v1/clients/count?status=all' \
--header 'Acepto: aplicación/json' \
--header 'Authorization: Bearer '

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"
}

Obtener información del cliente

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.

Método:
Vamos.

/crystalmq/api/v1/clients/info

Solicitud de ejemplo

curl --location '/crystalmq/api/v1/clients/info?clientid=%3Cstring%3E' \
--header 'Acepto: aplicación/json' \
--header 'Authorization: Bearer '

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"
}

Consigue la última voluntad del cliente

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.

Método:
Vamos.

/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

curl --location '/crystalmq/api/v1/clients/last-will?clientid=%3Cstring%3E' \
--header 'Acepto: aplicación/json' \
--header 'Authorization: Bearer '

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"
}

Desconecte el cliente MQTT5

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.

Método:
POST

/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 suscripciones al cliente

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.

Método:
Vamos.

/crystalmq/api/v1/clients/subscriptions

Parámetros:

PARAMETER VALUE DETAIL
cliente id El ID del cliente cuyas suscripciones deben recuperarse.

Solicitud de ejemplo

curl --location '/crystalmq/api/v1/clients/subscriptions?clientid=%3Cstring%3E ' \
--header 'Acepto: aplicación/json' \
--header 'Authorization: Bearer '

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 clientes

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.

Método:
Vamos.

/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"
}

Temas

Obtener clientes suscritos al tema

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.

Método:
Vamos.

/crystalmq/api/v1/topics/subscriptions

Solicitud de ejemplo

curl --location '/crystalmq/api/v1/topics/subscriptions?topic=%3Cstring%3E' \
--header 'Acepto: aplicación/json' \
--header 'Authorization: Bearer '

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"
}

Get Recent Events

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.

Método:
#

/crystalmq/api/v1/recent-events

Solicitud de ejemplo

curl --location '/crystalmq/api/v1/recent-events?clientid=%3Cstring%3E pacientetopic=%3C cadena%3E limit=1' \
--header 'Acepto: aplicación/json' \
--header 'Authorization: Bearer '

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"
}

Obtenga órdenes recientes

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.

Método:
#

/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 comando al cliente

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.

Método:
#

/crystalmq/api/v1/send-command

Solicitud de ejemplo

{}
"clientid": "client123",
"topic": "/devices/+/data",
"Mensaje": "Mensaje ordenado",
"qos": 1,
"retain": 1
}

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"
}