Playground lokal mit Docker ausführen
Führen Sie den Playground lokal aus, wenn Sie Ihren eigenen API Client, die Berechtigungen Ihres Kontos und physische Geräte überprüfen müssen. Das veröffentlichte Image enthält sowohl die Weboberfläche als auch den Backend-Dienst, sodass Go, Node.js oder ein Quellcode-Checkout nicht erforderlich sind.
Wenn Sie nur den Ablauf erkunden möchten, beginnen Sie mit dem Online-Playground.
Voraussetzungen
- Docker ist installiert.
- Sie haben einen API Client mit
clientIdundclientSecret. - Der API Client hat mindestens
device:read; Steuerung und Konfiguration erfordern zusätzliche Berechtigungen. - Der lokale Port
8090ist verfügbar.
Die vollständigen Regeln finden Sie unter Autorisierungs-Scopes (auf Englisch).
Schützen Sie Test-Zugangsdaten
Verwenden Sie ein dediziertes Testkonto und Testgeräte anstelle von Produktions-Zugangsdaten. Gewähren Sie nur die für die aktuelle Überprüfung erforderlichen Berechtigungen und gewähren Sie device:manage nur, wenn Geräteverwaltung erforderlich ist.
1. Umgebungsdatei erstellen
Erstellen Sie ein leeres Verzeichnis und fügen Sie eine .env-Datei hinzu:
WLTE_BASE_URL=https://openapi.svnwi.com
WLTE_CLIENT_ID=replace-with-your-clientId
WLTE_CLIENT_SECRET=replace-with-your-clientSecret
WLTE_WS_ENABLED=trueBeschränken Sie den Zugriff auf die Datei:
chmod 600 .envCommitten Sie .env nicht in Git und platzieren Sie clientSecret nicht in Browser-Code, einer mobilen Anwendung oder öffentlichen Logs.
2. Neuestes Image herunterladen und starten
docker pull wlte/wlte-openapi-playground:latest
docker run -d \
--name wlte-openapi-playground \
--env-file .env \
-p 127.0.0.1:8090:8090 \
wlte/wlte-openapi-playground:latestDer Port ist an die Loopback-Schnittstelle des Hosts gebunden und nicht direkt im lokalen Netzwerk oder Internet zugänglich.
3. Prozess überprüfen
docker ps --filter name=wlte-openapi-playground
docker logs --tail=100 wlte-openapi-playground
curl --fail http://127.0.0.1:8090/healthzÖffnen Sie nach erfolgreicher Gesundheitsprüfung:
4. Ihre Integration überprüfen
- Stellen Sie sicher, dass die Geräteliste den für das Konto verfügbaren Geräten entspricht.
- Öffnen Sie ein Gerät und stellen Sie sicher, dass seine Peripherie-Panels seinen Fähigkeiten entsprechen.
- Wählen Sie nacheinander HTTP und WebSocket und führen Sie mit jedem Transport eine Live-Zustandsaktualisierung durch.
- Verwenden Sie nur Testgeräte für Relais- oder RS-485-Vorgänge.
- Vergleichen Sie Anfragen, Antworten und Ereignisnachrichten im Protocol Inspector.
Wenn die Oberfläche einen Berechtigungsfehler meldet, aktualisieren Sie den API Client unter API Keys und starten Sie dann den Container mit den aktualisierten Zugangsdaten neu.
Optionale Konfiguration
Diese Einstellungen haben Standardwerte und müssen nur zur .env hinzugefügt werden, wenn Sie Timeouts, Ereignispuffer oder Protokollierung anpassen möchten:
| Umgebungsvariable | Standard | Zweck |
|---|---|---|
WLTE_REQUEST_TIMEOUT | 15s | Timeout für REST-API-Anfragen |
PLAYGROUND_WS_EVENT_BUFFER | 256 | Größe des WebSocket-Ereignispuffers |
PLAYGROUND_WS_EVENT_HISTORY | 200 | Von der Seite gespeicherte Ereignisse |
PLAYGROUND_WS_PING_INTERVAL | 20s | Ping-Intervall für WebSocket |
PLAYGROUND_TRAFFIC_HISTORY | 200 | Vom Protocol Inspector gespeicherte Nachrichten |
PLAYGROUND_LOG_FORMAT | json | Log-Format |
PLAYGROUND_LOG_LEVEL | info | Log-Level |
Container stoppen und entfernen
docker rm -f wlte-openapi-playgroundAus dem Quellcode erstellen
Erstellen Sie nur aus dem Dockerfile, wenn Sie unveröffentlichten Code überprüfen oder den Playground selbst ändern müssen:
docker build \
--build-arg VERSION=local \
-t wlte-openapi-playground:local \
.
docker run -d \
--name wlte-openapi-playground \
--env-file .env \
-p 127.0.0.1:8090:8090 \
wlte-openapi-playground:localDas Dockerfile erstellt die Vue-Anwendung, bettet sie in den Go-Dienst ein und führt im finalen Image einen einzelnen Prozess ohne Root-Rechte aus. .env wird niemals in das Image kopiert.
Fehlerbehebung
Die Seite öffnet sich nicht
Stellen Sie sicher, dass der Container läuft und .env nicht PLAYGROUND_LISTEN_ADDR=127.0.0.1:8090 festlegt. Der Prozess muss innerhalb des Containers auf 0.0.0.0:8090 lauschen; das veröffentlichte Image verwendet diesen Standardwert bereits.
Die Geräteliste ist leer
Stellen Sie sicher, dass der API Client über device:read verfügt und sein Konto auf Geräte zugreifen kann. Fahren Sie fort mit Häufige Fehler.
Kann ich dies öffentlich zugänglich machen?
Der Playground bietet keine Betreiber-Anmeldung. Fügen Sie HTTPS, Authentifizierung oder Netzwerkzugriffskontrollen hinzu, bevor Sie ihn teilen, und verwenden Sie dedizierte Test-Zugangsdaten mit eingeschränkten Berechtigungen.
