REST-SchnittstelleREST steht für Representational State Transfer und stellt eine Schnittstelle für Konfiguration, Statusabfrage und Ausführung manueller Aktionen der Applikation über das HTTP- und HTTPS-Protokoll zur Verfügung. Folgende Befehle (HTTP-Methoden) stehen zum Bearbeiten der Ressourcen (Parameter bzw. Einträge) zur Verfügung:
Aktivieren der REST-SchnittstelleBevor ein Zugriff auf die REST-Schnittstelle der Applikation über HTTP oder HTTPS möglich ist, muss dies im Menü Administration auf der Seite REST-Interface entsprechend konfiguriert werden. Dazu muss der Zugang über HTTP und/oder HTTPS aktiviert werden und bei aktiver Firewall im Router eine entsprechende Ausnahmeregel vorhanden und aktiv sein. Das unverschlüsselte HTTP-Protokoll sollte nur verwendet werden, wenn die Verbindung anderweitig verschlüsselt ist, z.B. durch ein VPN. AdressierungDie Adressierung erfolgt über die IP-Adresse der icom Data Suite, den Port für den REST-Zugriff und den Pfad zu den Parametern.
Der Pfad zu den Parametern ist hier genauso in Sektionen strukturiert wie im CLI.
Die Adressierung für die Parameter der REST-Schnittstelle in einer Applikation mit der IP-Adresse 192.168.1.10 und den HTTPS-Port ist zum Beispiel: SyntaxDie Syntax der verfügbaren Befehle lässt sich leicht über die Autovervollständigung im CLI herausfinden. Siehe dieses Beispiel für die Vorgehensweise zum Ermitteln der Befehls-Syntax. KonfigurationZum Auslesen oder Ändern der Konfiguration stehen die Befehle (HTTP-Methoden) GET, POST, PUT und DELETE zur Verfügung. Für Konfigurationsparameter beginnt der Pfad immer mit /configuration/. Auslesen von Parametern (GET)Parameter werden mit der HTTP-Methode GET ausgelesen. Beispiel für das Auslesen der Parameter der REST-Schnittstelle: Als Antwort werden sämtliche Parameter mit ihrer Einstellung im JSON-Format zurückgegeben: Der erste Abschnitt der Antwort referenziert das Profil, der zweite die Konfiguration mit den einzelnen Parametern. Spezifizieren des Profils im GET-BefehlOhne eine Angabe bezieht sich der GET-Befehl immer auf das laufende Profil. Sollen die Parameter eines anderen Profils ausgelesen werden, muss der Befehl um die Angabe des Profils ergänzt werden. Beispiel für das Auslesen der Benutzer von Profil "Profile_2": Als Antwort werden sämtliche Benutzer von Profil "Profile_2" im JSON-Format zurückgegeben: Filtern einer Liste im GET-BefehlBei Listen gibt ein GET-Befehl sämtliche Einträge zurück. Um nur die gewünschten Einträge in der Antwort zu sehen, kann der Befehl mit einem Filter übergeben werden. Für den Filter wird der Parameter, nach dem gefiltert werden soll, ein Operator für die Filterfunktion und der gewünschte Wert des Parameters in einem JSON-Array angegeben: { Der Parameter ist einer der Konfigurationsparameter im Listeneintrag. Beispiel für das Ausgeben aller Benutzer mit der Berechtigung "Lesen": Als Antwort werden die Parameter sämtlicher Benutzer mit der Berechtigung "Lesen" im JSON-Format zurückgegeben: Es sind auch mehrfache Filter möglich. Dann werden sämtliche Filter mit einem logischen UND kombiniert, d.h. alle Filterkriterien müssen erfüllt werden, damit ein Eintrag angezeigt wird. Beispiel für das Ausgeben aller Benutzer mit der Berechtigung "Lesen" und dem String "ic" im Benutzernamen: Abfrage der Anzahl der Listeneinträge mit dem GET-BefehlUm die Anzahl der Einträge einer Liste abzufragen, wird der Befehl um den Parameter return_size ergänzt, wobei mit dem Parameter ein Wert übergeben muss, der allerdings irrelvant ist. Beispiel für das Ausgeben der Anzahl der angelegten Benutzer: Als Antwort wird die Anzahl der Benutzer im JSON-Format zurückgegeben: Wird dabei ein Filter mit übergeben, wird nur die Anzahl der Listeneinträge ausgegeben, welche den Filterkriterien entsprechen. Hinzufügen von Parametern (POST)Mit der HTTP-Methode POST werden Einträge zu Listen hinzugefügt. Dabei darf der Eintrag keinen Listenindex haben, da der Eintrag am Ende der Liste hinzugefügt wird. Beispiel für das Hinzufügen des neuen Benutzers "newuser" mit Leserechten zum Profil "Profile" und gleichzeitiger Aktivierung des geänderten Profils: { Obiges Beispiel fügt den neuen Benutzer dem Profil "Profile" hinzu. Der Parameter "name": "Profile" spezifiziert das Profil, auf das die Änderungen Anwendung finden. Wird er weggelassen, wird der Benutzer dem laufenden Profil hinzugefügt. Der Parameter "activate": "1" aktiviert das geänderte Profil. Wird er weggelassen, wird das Profil lediglich geändert, aber nicht aktiviert. Sollen Änderungen auf das laufende Profil Anwendung finden und soll keine Aktivierung stattfinden, kann der gesamte Profil-Abschnitt weggelassen werden. Manche Funktionen der Applikation erfordern Listen innerhalb von Listen. Beispiel für das Hinzufügen eines neuen "Holding-Register"-Datenpunkts mit der Beschreibung "test" und dem Format "Unsigned Integer 32" zur Datenpunkt-Liste des Modbus-Geräts "mdbDev1": { Ändern von Parametern (PUT)Mit der HTTP-Methode PUT werden bestehende Einträge in Listen geändert. Beispiel für das Ändern der Rechte des Benutzers "icom" von Lesen auf Lesen/Schreiben: { Der Listen-Identifikator, hier der Parameter "index" ist zwingend erforderlich zur Bestimmung des zu ändernden Eintrags. Löschen von Parametern (DELETE)Mit der HTTP-Methode DELETE werden komplette Listen oder bestehende Einträge aus Listen gelöscht. Beispiel für das Löschen aller digitalen Ausgänge: Beispiel für das Löschen aller Benutzer mit dem String "test" im Benutzernamen aus dem Profil "Profile_2": Beispiel für das Löschen aller Modbus-Datenpunkte: Beispiel für das Löschen aller Modbus-Datenpunkte mit dem Typ "Holding-Register": Status-AbfragenZum Abfragen von Statusinformationen steht der Befehl (HTTP-Methode) GET zur Verfügung. Für Abfragen von Statusinformationen beginnt der Pfad immer mit /status/. Beispiel für das Auslesen der aktuellen Werte der Datenpunkte: Als Antwort werden sämtliche Datenpunkte mit ihren Werten im JSON-Format zurückgegeben: Beispiel für das Auslesen der aktuellen Werte bestimmter Datenpunkte: Als Antwort werden nur die im Aufruf angegebenen Datenpunkte mit ihren Werten im JSON-Format zurückgegeben: Anzeigen von Log-Dateien und ProfilenZum Anzeigen von Log-Dateien und Profilen steht der Befehl (HTTP-Methode) GET zur Verfügung. Für die Anzeige von Log-Dateien und Profilen beginnt der Pfad immer mit /download/. Log-DateienEine Übersicht aller in der Applikation gespeicherten Log-Dateien erhält man durch einen GET-Aufruf der Log-Datei-Liste: { Die Anzeige einer Log-Datei erhält man durch einen GET-Aufruf der jeweiligen Datei:
2018-04-19 07:44:46 [configd] Started ProfileEine Übersicht aller in der Applikation gespeicherten Profile erhält man durch einen GET-Aufruf der Profile-Liste: { Die Anzeige eines Profils erhält man durch einen GET-Aufruf des jeweiligen Profils: Debugging und Auslösen manueller AktionenZum Debugging und Auslösen manueller Aktionen steht der Befehl (HTTP-Methode) POST zur Verfügung. Für das Debugging und Auslösen manueller Aktionen beginnt der Pfad immer mit /operation/. Für Debugging-Zwecke ist es möglich, manuelle Aktionen auszuführen. Beispiel für das manuelle Versenden der Nachricht "sms1": { Beispiel für das manuelle Setzen des analogen Merkers 1 auf den Wert "13": { Siehe dazu auch dieses Beispiel für die Vorgehensweise zum Ermitteln der Befehls-Syntax. |