Zum Hauptinhalt springen

JSON-Konventionen

Alle Service-Schnittstellen verwenden JSON. Auf dieser Seite werden die gängigen Modelle beschrieben.

Anschlüsse​

HafenSchnittstelleVersion
10001HTTP REST + WebSocket (Simulationskanal)v3.1 (aktuell)
10020WebSocket (Ereigniskanal, nur Lesezugriff)—
10000Veraltete WebSocket-Version (v3.0 – wird in v4.0 entfernt)v3.0

HTTP-Antwort-Header​

Jede HTTP-Antwort verwendet denselben Rahmen:

Erfolg (mit Daten):

{ "ok": true, "data": { … } }

Erfolg (keine Daten – nur Änderungsendpunkte):

{ "ok": true }

Fehler:

{ "ok": false, "error": "reason string" }

Veralteter Endpunkt:

{ "ok": true, "deprecation_warning": "This route is deprecated. Use …" }

HTTP-Statuscodes​

CodeBedeutung
200Erfolg
400Fehlerhafte Anfrage – ungültiger Hauptteil, mehrdeutiger Selektor, fehlendes Pflichtfeld
404Gerät, Sitzung oder Ressource nicht gefunden
405Unzulässige Methode

Format der WebSocket-Nachrichten​

Die Nachrichten sind JSON-Objekte. Die Schlüssel der ersten Ebene sind die Namen der Gerätegruppen (inverse3, verse_grip, wireless_verse_grip) und einen optionalen Schlüssel session für Befehle auf Sitzungsebene.

Kunde → Dienstleistung (Auftrag):

{
"session": { "configure": { … } },
"inverse3": [
{ "device_id": "049D", "configure": { … }, "commands": { … } }
]
}

Service → Kunde (Status):

{
"session_id": 7,
"inverse3": [
{ "device_id": "049D", "config": { … }, "state": { … }, "status": { … } }
]
}

Die erste Nachricht des Dienstes enthält config (vollständiger Screenshot); die folgenden Nachrichten enthalten nur state et status. Siehe WebSocket-Protokoll für den gesamten Arbeitsablauf.

Art des Inhalts​

Alle HTTP-Anfragen mit einem Body müssen Folgendes senden: Content-Type: application/json. WebSocket-Nachrichten sind immer JSON-Frames im Klartext.

Unbekannte Schlüssel​

Unbekannte Schlüssel werden stillschweigend ignoriert.

Der Dienst ignoriert derzeit unbekannte JSON-Schlüssel, ohne dabei einen Fehler auszugeben. Sollte ein Befehl keine Wirkung zu zeigen, sehen Sie bitte in den Protokollen des Dienstes nach und überprüfen Sie die Feldnamen in der API-Referenz. Dieses Verhalten wird sich in einer zukünftigen Version ändern (unbekannte Schlüssel lösen dann ein Warnereignis aus).