Dockerでローカルにプレイグラウンドを実行
自分のAPI Client、アカウント権限、実機を検証する必要がある場合は、プレイグラウンドをローカルで実行してください。公開されているイメージにはWebインターフェースとバックエンドサービスの両方が含まれているため、Go、Node.js、ソースコードのチェックアウトは不要です。
ワークフローを試してみたいだけの場合は、オンラインプレイグラウンドから始めてください。
前提条件
- Dockerがインストールされていること。
clientIdとclientSecretを持つAPI Clientがあること。- API Clientが少なくとも
device:readを持っていること。制御と設定には追加のスコープが必要です。 - ローカルのポート
8090が利用可能であること。
完全なルールについては認可スコープ(英語)を参照してください。
テスト用の認証情報を保護してください
本番の認証情報ではなく、専用のテストアカウントとテストデバイスを使用してください。現在の検証に必要な権限のみを付与し、デバイス管理が必要な場合を除いて device:manage を付与しないでください。
1. 環境ファイルを作成
空のディレクトリを作成し、.env ファイルを追加します。
WLTE_BASE_URL=https://openapi.svnwi.com
WLTE_CLIENT_ID=replace-with-your-clientId
WLTE_CLIENT_SECRET=replace-with-your-clientSecret
WLTE_WS_ENABLED=trueファイルへのアクセスを制限します。
chmod 600 .env.env をGitにコミットしたり、clientSecret をブラウザコード、モバイルアプリケーション、公開ログに置いたりしないでください。
2. 最新イメージを取得して起動
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:latestこのポートはホストのループバックインターフェースにバインドされており、ローカルネットワークやインターネットに直接公開されることはありません。
3. プロセスを確認
docker ps --filter name=wlte-openapi-playground
docker logs --tail=100 wlte-openapi-playground
curl --fail http://127.0.0.1:8090/healthzヘルスチェックが成功したら、次を開きます。
4. 統合を検証
- デバイス一覧がアカウントで利用可能なデバイスと一致していることを確認します。
- デバイスを開き、その周辺機器パネルが機能に一致していることを確認します。
- HTTPとWebSocketを順に選択し、それぞれのトランスポートでライブ状態を1回更新します。
- リレーやRS-485操作には、テストデバイスのみを使用してください。
- Protocol Inspectorでリクエスト、レスポンス、イベントメッセージを比較します。
UIが権限エラーを報告する場合は、API KeysでAPI Clientを更新し、更新された認証情報でコンテナを再起動してください。
任意の設定
以下の設定にはデフォルト値があり、タイムアウト、イベントバッファ、ログを調整したい場合にのみ .env に追加してください。
| 環境変数 | デフォルト | 用途 |
|---|---|---|
WLTE_REQUEST_TIMEOUT | 15s | REST APIリクエストのタイムアウト |
PLAYGROUND_WS_EVENT_BUFFER | 256 | WebSocketイベントバッファのサイズ |
PLAYGROUND_WS_EVENT_HISTORY | 200 | ページが保持するイベント数 |
PLAYGROUND_WS_PING_INTERVAL | 20s | WebSocketのPing間隔 |
PLAYGROUND_TRAFFIC_HISTORY | 200 | Protocol Inspectorが保持するメッセージ数 |
PLAYGROUND_LOG_FORMAT | json | ログ形式 |
PLAYGROUND_LOG_LEVEL | info | ログレベル |
コンテナの停止と削除
docker rm -f wlte-openapi-playgroundソースからビルド
未公開のコードを検証したり、プレイグラウンド自体を変更したりする必要がある場合のみ、Dockerfileからビルドしてください。
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:localDockerfileは、Vueアプリケーションをビルドし、それをGoサービスに埋め込み、最終イメージ内で1つの非rootプロセスとして実行します。.env がイメージにコピーされることはありません。
トラブルシューティング
ページが開かない
コンテナが実行中であること、.env で PLAYGROUND_LISTEN_ADDR=127.0.0.1:8090 が設定されていないことを確認してください。プロセスはコンテナ内で 0.0.0.0:8090 をリッスンする必要があり、公開されているイメージはすでにこのデフォルトを使用しています。
デバイス一覧が空
API Clientが device:read を持ち、そのアカウントがデバイスにアクセスできることを確認してください。続いてよくある失敗を参照してください。
公開してもよいか
プレイグラウンドにはオペレーターログインの仕組みがありません。共有する前にHTTPS、認証、ネットワークアクセス制御を追加し、権限を制限した専用のテスト認証情報を使用してください。
