Skip to content

REST API oder WebSocket

WLTE bietet sowohl REST API als auch WebSocket. Sie ersetzen sich nicht gegenseitig: Es sind zwei Kanäle, die für unterschiedliche Integrationsanforderungen konzipiert sind.

Grundmodell

REST API verwendet das standardmäßige Anfrage-Antwort-Modell. Ihr Server sendet eine HTTPS-Anfrage, und WLTE gibt eine explizite Antwort zurück. Geeignet zum Auflisten von Ressourcen, Abfragen von Ressourcen, Senden von Vorgängen und Lesen von Ergebnissen.

WebSocket verwendet ein Modell mit dauerhafter Verbindung. Ihr Server erstellt zunächst über REST ein einmaliges wsTicket und baut dann eine wss-Verbindung auf. Nach dem Verbindungsaufbau kann dieselbe Verbindung zum Senden von Anfragen und Empfangen von Geräteereignissen verwendet werden.

Wichtige Unterschiede

DimensionREST APIWebSocket
VerbindungUnabhängige HTTP-Anfrage pro AufrufDauerhafte Verbindung, wiederholt genutzt
InteraktionEine Anfrage, eine AntwortAnfragen senden, Antworten empfangen und Ereignisse empfangen
Am besten geeignet fürListen, Paginierung, Konfiguration, Befehlsversand, ErgebnisabfrageEchtzeit-Statusabfragen, latenzarme Interaktion, Ereigniszustellung
ZuverlässigkeitsmodellJede Anfrage hat ein explizites Ergebnis und kann HTTP-Wiederholungsregeln folgenVerbindung kann abbrechen; Wiederholung von Ereignissen während des Abbruchs nicht garantiert
AutorisierungJeder geschützte Endpunkt prüft aktuelle BerechtigungenVerbindung erfordert ein Ticket; aktive Anfragen prüfen weiterhin Vorgangsberechtigungen
AnfrageschutzAbfragen und Gerätevorgänge sind ratenbegrenztVerbindungen, Nachrichten und Gerätevorgänge sind ratenbegrenzt
IntegrationsaufwandEinfacher, geeignet für die meisten Server-IntegrationenKomplexer: erfordert Heartbeat, Wiederverbindung und idempotente Ereignisverarbeitung

Wann REST API verwenden

Bevorzugen Sie REST API, wenn Sie Folgendes benötigen:

  • Geräte eines Kontos anzeigen
  • Geräte mit Paginierung laden
  • Gerätetypdefinitionen lesen
  • Relais-, RS485- oder Konfigurationsvorgänge erstellen
  • Befehlsergebnis abfragen
  • Serverseitige geplante Synchronisierung ausführen
  • Mit klaren HTTP-Statuscodes und Geschäftsfehlercodes arbeiten

Typischer Ablauf:

text
Access Token erhalten
-> GET /wlte/v1/devices
-> GET /wlte/v1/devices/{deviceId}
-> POST /wlte/v1/devices/{deviceId}/relays/commands
-> GET /wlte/v1/commands/{commandId}

Wann WebSocket verwenden

Ziehen Sie WebSocket in Betracht, wenn Ihr Server Folgendes benötigt:

  • Verbunden bleiben und Geräteereignisse empfangen
  • Echtzeitstatus eines einzelnen Geräts mit geringer Latenz abfragen
  • Gerätezustand innerhalb eines Serviceprozesses aktuell halten
  • Latenz durch wiederholten HTTP-Verbindungsaufbau reduzieren

Typischer Ablauf:

text
Access Token erhalten
-> POST /wlte/v1/ws/ticket
-> Verbindung zu wss://.../wlte/v1/ws?ticket=... herstellen
-> session.ping als Anwendungs-Heartbeat senden
-> device.state.get für den Echtzeitstatus eines Geräts senden
-> device.operation.execute für Gerätevorgänge senden
-> Geräteereignisse empfangen

Empfohlene Kombination

Die meisten Produktionsintegrationen sollten beide verwenden:

  1. Verwenden Sie REST API für Initialisierung und Backup-Synchronisierung.
  2. Verwenden Sie WebSocket für Echtzeitänderungen und Echtzeitstatusabfragen eines einzelnen Geräts.
  3. Verwenden Sie nach einer WebSocket-Trennung oder einem Dienstneustart REST API, um den Basiszustand wiederherzustellen.
  4. Verlassen Sie sich nicht nur auf WebSocket-Ereignisse für kritischen Geschäftszustand: Behalten Sie immer die Möglichkeit, ihn über REST API zu bestätigen.

Häufige Fehler

Aktualisierung aller Kontogeräte über WebSocket

Nicht empfohlen. device.state.get ist für den Echtzeitstatus eines einzelnen Geräts gedacht und kann eine tatsächliche Aktualisierung sowie geräteseitige Ratenbegrenzungen auslösen. Verwenden Sie für Kontogerätelisten Geräte auflisten (auf Englisch).

Annahme, dass WebSocket nie die Verbindung trennt

Gehen Sie nicht davon aus. Netzwerkänderungen, Deployments, Proxys, Dienstneustarts und Client-Prozessneustarts können die Verbindung schließen. Der Client muss Wiederverbindung, Heartbeat und idempotente Ereignisverarbeitung implementieren.

Ersetzen aller Statusabfragen durch WebSocket-Ereignisse

Nicht empfohlen. WebSocket dient der Echtzeitbenachrichtigung, sollte aber nicht die einzige dauerhafte Zustandsquelle sein. Bestätigen Sie nach einer Zustandslücke, einem Seiten-Reload oder einem Dienstneustart den Zustand erneut über REST API oder device.state.get.

Schnelle Entscheidungstabelle

BedarfEmpfehlung
Erste Integration oder API-ValidierungREST API
Geräteliste anzeigenREST API
Benutzer öffnet Gerätedetails und aktualisiert sieREST API GET /devices/{deviceId} oder WS device.state.get
Server benötigt kontinuierliche ÄnderungsereignisseWebSocket
Gerätesteuerung ausführenREST API oder device.operation.execute über eine bereits geöffnete WebSocket-Verbindung
Endergebnis eines Befehls abfragenREST API
Zustand nach WebSocket-Trennung wiederherstellenÜber REST API resynchronisieren, dann mit WebSocket fortfahren
Docs buildVersion v1.5.8-20260814-180545-84
Copyright © 2026 WLTE