Zum Hauptinhalt springen

JSON-Spezifikation

Alle Service-Schnittstellen verwenden JSON. Auf dieser Seite werden die gängigen Muster erläutert.

Port​

PortSchnittstelleVersion
10001HTTP REST + WebSocket (Simulationskanal)v3.1 (aktuell)
10020WebSocket (Ereigniskanal, schreibgeschützt)—
10000Legacy-WebSocket (v3.0 – wird in v4.0 entfernt)v3.0

HTTP-Antwort-Envelope​

Alle HTTP-Antworten verwenden denselben Envelope:

Erfolg (mit Daten):

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

Erfolg (keine Daten – Endpunkt nur für Änderungen):

{ "ok": true }

Fehler:

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

Nicht empfohlene Endpunkte:

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

HTTP-Statuscodes​

CodeBedeutung
200Erfolg
400Ungültige Anfrage – Ungültiger Text, mehrdeutiger Selektor, fehlende Pflichtfelder
404Das Gerät, die Sitzung oder die Ressource wurde nicht gefunden.
405Die Methode ist nicht zulässig.

WebSocket-Nachrichtenformat​

Die Nachricht ist ein JSON-Objekt. Der Schlüssel auf oberster Ebene ist der Name der Gerätegruppe (inverse3、verse_grip、wireless_verse_grip) sowie die Optionen für Befehle auf Sitzungsebene session Das ist der Schlüssel.

Client → Dienst (Befehl):

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

Dienst → Client (Status):

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

Die erste Nachricht des Dienstes enthält config(vollständiger Snapshot) enthalten ist, und in den nachfolgenden Nachrichten state und status … sind enthalten. Informationen zum vollständigen Arbeitsablauf finden Sie unterWebSocket-Protokoll Siehe dazu.

Inhaltstyp​

Alle HTTP-Anfragen, die diesen Text enthalten, sindContent-Type: application/json müssen gesendet werden. WebSocket-Nachrichten sind stets JSON-Frames im Klartext.

Unbekannter Schlüssel​

Unbekannte Schlüssel werden einfach ignoriert.

Der Dienst ignoriert derzeit unbekannte JSON-Schlüssel ohne Fehlermeldung. Falls ein Befehl keine Wirkung zu zeigen scheint, überprüfen Sie bitte das Protokoll des Dienstes und vergleichen Sie die Feldnamen mit der API-Referenz. Dieses Verhalten wird in zukünftigen Versionen geändert (unbekannte Schlüssel werden dann eine Warnmeldung auslösen).