Funktionsmodule HTTP-API / REST-API
Schnellübersicht
Verwaltung der HTTP-/REST-API Subsysteme
Das Management der beiden HTTP-/REST-API Subsysteme für die Rollen des Timberwolf Servers als Client (für Zugriff auf externe Server) und als Server (für Zugriff von externen Clients auf den Timberwolf Server) erfolgt mit der grafischen Web-APP, die mit praktisch allen Browsern auf fast allen Endgeräten genutzt werden kann.
Firmware Die Funktion als HTTP-Server steht ab IP8 zur V 4.5 oder neuer zur Verfügung.
Zeitlimit für Verbindungen: Für jedes HTTP-/REST-API Subsysteme kann ein Zeitlimit angelegt werden.
Mehrere Instanzen für Client-Subsysteme: Durch das Anlegen mehrerer HTTP-/REST-API Client Subsysteme parallel ist eine Trennung z. B. zwischen lokalen und externen HTTP-API Ressourcen (mit verschiedenem Timeout) möglich. Damit können API-Abfragen lokaler erreichbarer Systeme (z.B. Ladestationen) von einem separaten Task bearbeitet werden gegenüber Abfragen externer Server (z.B. Ressourcen über das Internet).
EINE Instanz für Server-Subsysteme: Vom “HTTP-/REST-API Server” Subsystem kann nur eine Instanz angelegt werden
Verbindungsstatistik: Für jedes der angelegten Subsysteme wird automatisch eine Statistik über erfolgreiche und fehlerhafte Transaktionen bereitgestellt, die auch mit Grafana ausgewertet werden können.
HTTP-API Server und Ressourcen Manager
Der HTTP-API Server und Ressourcen Manager ist das Modul in der Web-APP zum Anlegen und Verwalten der Transaktionen für den Datenaustausch der HTTP-/REST-API Subsysteme mit externen Server bzw. von externen Clients.
Die Konfiguration erfolgt über eine grafische Benutzeroberfläche. Für alle Konfigurationsaufgaben stehen einfach bedienbarer Assistenten mit dazu eingeblendeten kontextsensitiven Hilfetexten zur Verfügung. Dieses Wiki wird über das Fragezeichensymbol oben links erreicht.
HTTP-API (externen) Server anlegen: Der HTTP-API Server und Ressourcen Manager ermöglicht das einfache Anlegen von Einträgen über anzusprechende externe Server mit HTTP-API. Hierunter werden dann Ressourcen und Transaktionen angelegt. Statusobjekte werden automatisch erzeugt.
HTTP-API Endpunkt anlegen: Der HTTP-API Server und Ressourcen Manager ermöglicht das einfache Anlegen von Einträgen von Endpunkten, die externen Clients dazu dienen, Anfragen an den Timberwolf Server zu stellen. Hierunter werden dann Ressourcen und Transaktionen angelegt. Statusobjekte werden automatisch erzeugt.
Fixe Header zu HTTP-API Server konfigurieren Zu jedem HTTP-API Server Eintrag können statische Header-Felder hinzugefügt werden um den Erfordernissen der jeweiligen externen Server bzw. Clients zu entsprechen.
HTTP-API Ressource hinzufügen: Zu jedem HTTP-API Server können ein oder mehrere Ressourcen angelegt werden. Für jede Ressource kann eine URI, ein zeitlicher Auslöser sowie die Request-Methode nebst den Content-Typen angelegt werden. Unterstützt wird:
Abfragemethode GET
Abfragemethode POST
Abfragemethode PUT
HTTP-Requests und optional bedingte Auslöser hinzufügen: Zu jedem HTTP-API Ressourceneintrag können beliebig viele Objekte zur Übergabe bei einer HTTP-Abfragen hinzugefügt werden (= “Transaktion”). Für jede Wertübergabe kann konfiguriert werden:
Übertragung von Objektwerten an die Ressource in der URI (eingebettet)
Übertragung von Objektwerten an die Ressource als Query-Parameter (angehängt an die URI)
Übertragung von Objektwerten an die Ressource im Header (auch statische Header-Werte möglich)
Übertragung von Objektwerten an die Ressource im Body (nur POST oder PUT), hierbei in den Formaten
text/plain (nur einzelner Objektwert)
application/json (einzelne und mehrere Objektwerte)
application/x-www-form-urlencoded (einzelne und mehrere Objektwerte)
Die Übertragung innerhalb URI, als Query-Parameter, im Header und im Body können gemischt angelegt und gleichzeitig in derselben Abfrage ausgeführt werden.
Für jede Wertübergabe kann eine physikalische Einheit und der Objekttyp (Boolesch, Ganzzahl, Fließkomma, Text) angegeben werden.
Für Übergabe im Body per application/json kann Schlüsselbegriff und Position im json angegeben werden, das json wird vom Subsystem automatisch erzeugt und kann im Datenmonitor geprüft werden
Für Übergabe im Body per application/x-www-form-urlencoded kann der Schlüsselbegriff angegeben werden, der entsprechende String wird vom Subsystem automatisch erzeugt und kann im Datenmonitor geprüft werden
Für jeden Transaktionseintrag (im Subsystem als HTTP-/REST-API Client) kann ein bedingter Auslöser (um den HTTP-Request auszuführen) angegeben werden, z.B. bei Wertänderung und ob nur die einzelne Transaktion oder alle Transaktionen der Request-Gruppe ausgeführt werden sollen. Damit ist eine granulare Steuerung der Parameterübergabe und welche Parameter davon diese Übertragung auslösen möglich. Dies kann mit dem zeitlichen Auslöser für diese Ressource kombiniert werden.
HTTP-Response Auswertung mit Übergabe an Objekte: Zu jedem HTTP-API Ressourceneintrag können beliebig viele Auswertungen der HTTP-Antwort hinzugefügt werden (= “Transaktion”) mit der Werte aus dem Body in einzelne Werte zerlegt und an Objekte übergeben werden
Empfang einzelner Objektwerte in Body mit text/plain
Empfang einzelner oder mehrerer Objektwerte in Body mit application/json
Objektverknüpfungen inkl. Konvertierung: Beliebige Verknüpfung der angelegten HTTP-/REST-API Objekte (auch der Statusobjekte) mit allen anderen Objekten im Timberwolf Servers (z.B. Zeitserien, KNX, 1-Wire, DMX, Logik, Modbus Systeme, MQTT Geräte, Modbus Geräte, andere HTTP-/REST-API Objekte, IFTTT usw.) inkl. automatischer Konvertierung.
Ausführungsanzeige mit historischem Verlauf: Für alle Transaktionen steht eine Anzeige der Bearbeitungshistorie zur Verfügung mit farblich markiertem Status und Mouse-Over Detail-Info
Statusanzeige mit historischem Verlauf: Zusätzlich werden pro angelegter Ressource automatisch Statusobjekte zur Verfügung gestellt, die jederzeit aufgeklappt werden können. Auch diese Statusobjekte sind mit einer Anzeige der Historie mit farblicher Darstellung und Mouse-Over-Details ausgeführt.
Ausführliche Fehlerdarstellung mit Handlungsempfehlung: Fehlerrückmeldungen der HTTP-API Server werden dargestellt mit Handlungsempfehlungen für einfache Fehlerbehebung.
Anzeige der Live-Werte während der Ausführung: Die während der Transaktionen mit den HTTP-API Servern ausgetauschten Werte werden Live im Datenmonitor dargestellt.
Sofortstart hinzugefügter Applikationen: Neu hinzugefügte Transaktionen werden nach Definition sofort gestartet und eingebunden.
TAGs für beliebige Gruppierungen von Geräten und Applikationen: HTTP-API Server und Transaktionseinträge können mit TAGs für beliebige Gruppierungen markiert werden
Unterstützung von URI-Strukturen in mehreren Leveln über Assistenten: Die einzelnen Bestandteile der URL werden vom Subsystem automatisch zusammengesetzt aus der Host-Adresse, der URI der jeweiligen Ressource, den Einfügungen in der URI für API-Key und allen Wertübergaben in der URI sowie den Wertübergaben im Query-Abschnitt. Für alle Eingaben stehen einfach bedienbare grafische Assistenten zur Verfügung.
Assistenten mit interaktiven Hinweistexten: Alle Assistenten blenden kontextsensitiv Hilfetexte ein. Für weitere Details sind entsprechende Links zu diesem Wiki enthalten.
Farbcodierungen
Um Anzeigen und Funktionen voneinander besser abzugrenzen und insbesondere um Verwechselungen zu vermeiden, werden die URIs farblich anders dargestellt als die Objekte mit denen diese verbunden sind, zudem sind Übertragungs- und Empfangsrichtung farblich und mit Pfeilen gekennzeichnet.
HTTP-/REST-API URIs in Violett: Die URIs der Server und Ressourcen werden im HTTP-API Server und Ressourcen Manager und dessen Assistenten in violett dargestellt. Platzhalter für API-Key und Wertübergaben innerhalb der URI in rot. Die Host-Adresse wird invers dargestellt für eine bessere Lesbarkeit.
Auswertende Transaktionen für den Empfang (“HTTP Response”) sind Grün unterlegt: Die Definition für die Auswertung der von den jeweiligen Ressourcen zurückgegebenen Antworten sind mit grüner Farbe unterlegt und mit einem Pfeil von links nach rechts gekennzeichnet. Die entsprechenden Assistenten sind ebenfalls mit grün unterlegt.
Aufrufende Transaktionen für das Übergeben von Werten (“HTTP Request”) sind Blau unterlegt: Die Definition für die Übergaben im HTTP-API Server und Ressourcen Manager sind mit blauer Farbe markiert und mit einem Pfeil von rechts nach links gekennzeichnet. Die entsprechenden Assistenten sind ebenfalls blau unterlegt.
Statusobjekte für Transaktionen sind Gelb unterlegt: Für jede Ressource werden automatisch fünf Transaktionen mit Statusobjekten angelegt mit Warnungen, Fehlern und Stati.
Transaktionswarnungen in Gelb: Alle Stati mit dem Schweregrad “Warnungen” werden gelb markiert
Transaktionsfehler in Rot: Diejenigen Rückmeldungen mit dem Schweregrad eines “Fehlers” werden in Rot ausgezeichnet
*Erklärung zu "beliebig" und "keine Beschränkung": In der Firmware des Timberwolf Servers sind keine künstlichen Limits implementiert, die über sich technisch ergebende Grenzen hinaus gehen.
Technischen Grenzen sind z.B. die verfügbaren Bandbreiten der Bussysteme und Schnittstellen, die Fähigkeiten der angesprochenen Endgeräte, der Adressumfang und die Datentransportfähigkeiten der jeweiligen Protokolle, die Kompatibilität der jeweiligen Datentypen, die erlaubten Datenflussrichtungen sowie die sich aus der gesamten Konfiguration des Timberwolf Servers ergebende Systemlast.
Der Verzicht auf vorgegebene Beschränkungen bedeutet nicht, dass jede denkbare Konfiguration in jeder Kombination und in jedem Umfang möglich ist. Wir glauben an die Mündigkeit und das Verständnis der Nutzer und erlauben durch weitgehenden Verzicht auf vorgegebene Limits, die verfügbaren Systemressourcen des Timberwolf Servers und der angeschlossenen Geräte im selbst gewählten Umfang zu nutzen.