Beim Aufbau einer IoT-Anwendung besteht die Notwendigkeit, zu kontrollieren und Verwaltung der Edge-Geräte aus der Manager-Anwendung. Also, unsereMQTT Broker(CrystalMQ) wurde mit REST integriert API Sie können Ihre Edge-Geräte über die REST API steuern. Sie können Nachrichten senden, neue hinzufügen Authentifizierungsschlüssel, erhalten Sie Client-Details und tun Sie mehr über die API. Diese Dokumentation bietet komplette Anleitung für die Entwickler, IoT-Anwendungen mit der RESTful API von unser Messaging-Broker. Wir empfehlen MQT Broker Integration mit REST APIBlog, um mehr zu wissen.
Stellen Sie Rohdaten im Körper fest.
Alle Parameterfelder sollten als Parameter angegeben werden.
Sobald die von Ihnen eingegebenen Authentifizierungsdaten überprüft werden, werden Sie wird empfangen Antwort. Dann erstellen Sie Autorisierung und setzen Bearer Token. Und für alle API Befehle außer Anmeldung, Es ist notwendig, die Berechtigung festzulegen.
Get Method sendet Anfragen an den Server, um Daten zu sammeln. Setzen Sie die ANHANG Parameter wie gerichtet.
Zugriff auf eine Liste von MQTT Benutzernamen zusammen mit den Kunden, die haben Zugriff auf jeden Benutzernamen. Dies hilft bei der Überwachung und Verwaltung akzeptable Nutzung.
GET
Beispiel Anfrage
Antwort:
Auf Erfolg:
{\cHFFFF}
"Status": "Erfolg",
"Daten": {\cHFFFF}
"Erklärungen": [
{\cHFFFF}
"mqtt_username": "mqtt_user1",
"Clients": "client1,client2"
}
!
},
"Nachricht": "MQTT-Erstellung und die entsprechenden Client-Ids"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Fügen Sie neue MQTT-Anmeldeinformationen hinzu oder aktualisieren Sie bestehende zusammen mit die zugehörige Liste der zugelassenen Kunden. Diese Operation ermöglicht es Ihnen zu verwalten und Benutzername-Client-Mappings konfigurieren, um eine ordnungsgemäße Zugriffskontrolle und Anmeldepflicht zu gewährleisten Management.
Post
/Kristall/api/v1/mqt-Erzeugung
{\cHFFFF}
"Status": "Erfolg",
"Nachricht": "Added MQTT Credentials - MQTT Benutzername: mqtt_user1 für
Client Id List: client1,client.,dev*"
}
Schlechte Anfrage - fehlende oder ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: mqtt_username / mqt_password /
Kunden"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Löscht alle erstellten MQTT Credentials. Diese Aktion verdeutlicht alle Benutzernamen-Client-Mappings, effektiv Zugriff zurückrufen und sicherstellen, dass keine Anmeldeinformationen bleiben aktiv.
Löschen
/Kristall/api/v1/mqt-Erzeugung
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"message": "Deleted MQTT Username: mqtt_user1"
}
Fehlende oder ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: mqtt_username"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Erhalten Sie die Thema Access Control List (ACL) für den angegebenen Client IDs und/oder MQTT Benutzernamen. Dies liefert detaillierte Informationen zu den Themen, die jeweils Client oder Benutzer ist berechtigt, zuzugreifen und Ihnen dabei zu helfen, die Berechtigungen auf dem Thema zu verwalten effektiv.
/ Kristallmq/api/v1/acl
Antwort:
Auf Erfolg:
{\cHFFFF}
"Status": "Erfolg",
"Daten": {\cHFFFF}
"acl":
"Clients": {\cHFFFF}
"Additionsprop1":
"publish":
"access": "allow",
"Topics": [
"topic1",
"topic2"
!
},
"Abonnieren": {\cHFFFF}
"access": "allow",
"Topics": [
"topic1",
"topic2"
!
}
},
"Additionsprop2":
"publish":
"access": "allow",
"Topics": [
"topic1",
"topic2"
!
},
"Abonnieren": {\cHFFFF}
"access": "allow",
"Topics": [
"topic1",
"topic2"
!
}
},
"Additionsprop3":
"publish":
"access": "allow",
"Topics": [
"topic1",
"topic2"
!
},
"Abonnieren": {\cHFFFF}
"access": "allow",
"Topics": [
"topic1",
"topic2"
!
}
}
},
"mqtt_username": {\cHFFFF}
"Additionsprop1":
"publish":
"access": "allow",
"Topics": [
"topic1",
"topic2"
!
},
"Abonnieren": {\cHFFFF}
"access": "allow",
"Topics": [
"topic1",
"topic2"
!
}
},
"Nachricht": "Topic based Access Control List"
}
Schlechte Anfrage - fehlende oder ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Missing erforderlicher Parameter: clientid / mqtt_username"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Hinzufügen oder Update der Topic Access Control List (ACL) für eine Client-ID oder MQTT Username. Stellen Sie sicher, dass nur einer von mqtt_username oder clientid in der anfordern.
/ Kristallmq/api/v1/acl
Beispielwert
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"message": "Updated Access Control List for Client: clientid"
}
Schlechte Anfrage - Entweder mqtt_username ODER Klient muss gegeben, aber nicht beide
{\cHFFFF}
"Status": "error",
"message": "Missing benötigter Parameter: Entweder mqtt_username OR clientid muss
gegeben
}
Unautorisiert - fehlende oder ungültige API-Token
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisiert"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Löschen Sie die Topic Access Control List (ACL) für eine Client-ID oder MQTT Benutzername. Stellen Sie sicher, dass nur ein, entweder mqtt_username oder clientid, in der Anfrage-Körper zur Verfügung gestellt wird.
/ Kristallmq/api/v1/acl
Parameter:
Name | Warenbezeichnung |
---|---|
Kunden <string> |
ID des Clients |
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"message": "Deleted Access Control List for ClientId: mqt_client1 wenn der ClientId
existiert.
MQTT Username basierte ACL wird für diesen Client angewendet."
}
Schlechte Anfrage - fehlende oder ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: clientid"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Erhalten Sie die Gesamtzahl der Kunden, die durch ihren aktuellen Status kategorisiert werden. Dies stellt eine ausführliche Übersicht der aktiven, inaktive und andere Client-Staaten helfen bei der effektiven Überwachung und Verwaltung.
/kristallmq/api/v1/clients/counts
Beispiel Anfrage
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"Daten": {\cHFFFF}
"aktiv": 100,
"inaktiv": 50,
"alle": 150
},
"Nachricht": "Anzahl der Kunden"
}
Schlechte Anfragen - ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Invalider Parameterwert für den Status"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Bietet detaillierte Informationen über einen bestimmten Client. Das hilft bei der Überwachung und Fehlerbehebung einzelner Kunden durch umfassende Bereitstellung Einblicke in ihre Aktivität und Konfiguration.
/kristallmq/api/v1/clients/info
Beispiel Anfrage
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"Daten": {\cHFFFF}
"clientid": "client123",
"mqtt_version": 5.
"Status": "aktiv",
"status_timestamp": "2024-07-17T12:00Z",
"ip": "192.168.1.100",
"keep_alive": 60,
"clean_session": wahr,
"session_expiry_interval": 3600
},
"message": "Detailinformationen des Clients123"
}
Schlechte Anfragen - fehlende oder ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: clientid"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Holen Sie die letzten Informationen für einen bestimmten MQTT-Client oder für alle Kunden. Dies bietet Details zu der letzten Willensnachricht für Clients, die wird verwendet, um anderen Kunden eine unerwartete Abschaltung zu melden.
/kristallmq/api/v1/clients/last-will
Parameter:
PARAMETER | VALUE DETAIL |
---|---|
Kunden-ID | Die ID des Clients, für den die letzten Informationen angefordert werden. |
Beispiel Anfrage
Antwort:
Wenn Gerät angeschlossen ist:
{\cHFFFF}
"Status": "Erfolg",
"Daten": {\cHFFFF}
"client_id": {\cHFFFF}
"Additionsprop1":
"last_will": {\cHFFFF}
"topisch": "letzte/will",
"Nachricht": "Dies ist die letzte Willensnachricht",
"qos": 1,
"enthalten": wahr,
"Eigenschaften": {\cHFFFF}
"Additionsprop1": 300,
"Additionsprop2": 300,
"Additionsprop3": 300
}
}
},
"Additionsprop2":
"last_will": {\cHFFFF}
"topisch": "letzte/will",
"Nachricht": "Dies ist die letzte Willensnachricht",
"qos": 1,
"enthalten": wahr,
"Eigenschaften": {\cHFFFF}
"Additionsprop1": 300,
"Additionsprop2": 300,
"Additionsprop3": 300
}
}
},
"Nachricht": "Last Will of Client(s)"
}
Schlechte Anfrage - fehlendes oder ungültiges Paremeter
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed to call last will information"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Trennt einen bestimmten MQTT5 Client. Diese Aktion beendet den aktuellen Client Sitzung, ständige Kommunikation zu stoppen und Ressourcen zu befreien.
/kristallmq/api/v1/clients/disconnect
Antwort:
Auf Erfolg, wenn Grenze ist 5:
{\cHFFFF}
"Status": "Erfolg",
"Nachricht": "Disconnected the Client: client123"
}
Schlechte Anfrage - fehlende oder ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: clientid"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Holen Sie die Liste der Abonnements für alle Kunden oder für einen bestimmten Client, wenn ein Client Eine ID ist vorhanden. Damit können Sie anzeigen, welche Themen jeder Kunde abonniert hat, indem Sie Abonnement-Management.
/kristallmq/api/v1/clients/Unterschriften
Parameter:
PARAMETER | VALUE DETAIL |
---|---|
Client-ID | Die ID des Clients, dessen Abonnements abgerufen werden sollen. |
Beispiel Anfrage
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"Daten": {\cHFFFF}
"Clients": {\cHFFFF}
"Additionsprop1":
"Unterschriften": (
{\cHFFFF}
"filter": "topic/filter",
"qos": 1,
"subscription_options": {\cHFFFF}
"subscription_identifier": 1.
"user_property": "property_value",
"no_local": wahr,
"retain_handling": 0,
"retain_as_published": 1
}
}
!
},
"Additionsprop2":
"Unterschriften": (
{\cHFFFF}
"filter": "topic/filter",
"qos": 1,
"subscription_options": {\cHFFFF}
"subscription_identifier": 1.
"user_property": "property_value",
"no_local": wahr,
"retain_handling": 0,
"retain_as_published": 1
}
}
!
},
"Nachricht": "Client Abonnements"
}
Schlechte Anfrage - fehlende oder ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: clientid"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Erhalten Sie eine umfassende Liste von Kunden, die durch ihren aktuellen Status kategorisiert werden. Das retrieval gibt Einblick in die Client-Aktivität und den Status, damit Sie überwachen und Client-Verbindungen effektiv verwalten.
/Kristall/api/v1/clients
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"Daten": {\cHFFFF}
"aktiv": [
"client1",
"client2"
,
"inaktiv": [
"client3",
"client4"
!
},
"Nachricht": "Client Ids"
}
Schlechte Anfrage - ungültiger Parameter
{\cHFFFF}
"Status": "error",
"message": "Invalider Parameterwert für den Status"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Holen Sie sich eine Liste von Kunden, die derzeit ein bestimmtes MQTT-Thema abonniert haben. Dies bietet Einblicke, in welche Kunden Nachrichten aus dem Thema erhalten.
/kristallmq/api/v1/topics/subscriptions
Beispiel Anfrage
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"Daten": {\cHFFFF}
"Clients": {\cHFFFF}
"Additionsprop1":
"filter": "topic/filter",
"qos": 1,
"subscription_options": {\cHFFFF}
"subscription_identifier": 1.
"user_property": "property_value",
"no_local": wahr,
"retain_handling": 0,
"retain_as_published": 1
}
},
"Additionsprop2":
"filter": "topic/filter",
"qos": 1,
"subscription_options": {\cHFFFF}
"subscription_identifier": 1.
"user_property": "property_value",
"no_local": wahr,
"retain_handling": 0,
"retain_as_published": 1
}
},
"Nachricht": "Clients abonniert zum Thema"
}
Schlechte Anfragen - fehlende oder ungültige Parameter
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: Thema"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisierter Benutzer"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Zugriff auf die neuesten Ereignisse des Brokers, die Einblicke in die jüngsten Aktivitäten und Systeminteraktionen. Diese Funktion hilft dabei, aktuelle Veranstaltungstrends zu überwachen und Probleme umgehend beheben.
/kristallmq/api/v1/recent-events
Beispiel Anfrage
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"Daten": [
{\cHFFFF}
"client": "client001",
"topisch": "/Geräte/+/Daten",
"event": "Ereignisdaten hier",
"Zeitstempel": "2024-07-17T14:30:00Z",
"Eigenschaften": {\cHFFFF}
"qos": 1
}
}
,
"Nachricht": "Ereignisse(n) von Client(s)"
} {\cHFFFF}
"Status": "Erfolg",
"Daten": [
{\cHFFFF}
"client": "client001",
"topisch": "/Geräte/+/Daten",
"event": "Ereignisdaten hier",
"Zeitstempel": "2024-07-17T14:30:00Z",
"Eigenschaften": {\cHFFFF}
"qos": 1
}
}
,
"Nachricht": "Ereignisse(n) von Client(s)"
}
Schlechte Anfrage aufgrund fehlender oder ungültiger Daten
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: Thema"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisiert"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Holen Sie sich eine Liste der neuesten Befehle an Clients. Diese Funktion bietet Einblicke in jüngste Befehlsaktivitäten, helfen Ihnen, Kundeninteraktionen zu verfolgen und zu überprüfen effektiv.
/kristallmq/api/v1/recent-commands
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"Daten": [
{\cHFFFF}
"client": "client001",
"topisch": "/Geräte/+/Daten",
"Befehl": "GET",
"Zeitstempel": "2024-07-17T14:30:00Z",
"Eigenschaften": {\cHFFFF}
"qos": "1"
}
}
!
}
Schlechte Anfrage aufgrund fehlender oder ungültiger Daten
Parameter fehlen:
{\cHFFFF}
"Status": "error",
"message": "Missing erforderliche Parameter: Thema"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisiert"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}
Senden Sie einen Befehl an einen bestimmten Client, indem Sie ihn an ein bestimmtes Thema veröffentlichen. Diese Aktion Sie können Clients auf Basis ihrer abonnierten Themen remote steuern oder anweisen.
/kristallmq/api/v1/send-command
Beispiel Anfrage
Antwort:
Auf Erfolg
{\cHFFFF}
"Status": "Erfolg",
"Nachricht": "Anforderung an den Client gesendet: client123"
}
Schlechte Anfrage aufgrund fehlender oder ungültiger Daten
Parameter fehlen:
{\cHFFFF}
"Status": "error",
"message": "Missing benötigter Parameter: clientid / topic"
}
Unbefugt
{\cHFFFF}
"Status": "error",
"Nachricht": "Unautorisiert"
}
Interner Server-Fehler
{\cHFFFF}
"Status": "error",
"Nachricht": "Failed"
}