メインコンテンツへ移動

JSONの規約

すべてのサービスインターフェースはJSONを使用しています。このページでは、一般的なモデルについて説明します。

ポート​

ポートインターフェースバージョン
10001HTTP REST + WebSocket(シミュレーションチャネル)v3.1(最新版)
10020WebSocket(イベントチャネル、読み取り専用)—
10000レガシーWebSocket(v3.0 — v4.0で廃止予定)v3.0

HTTP応答ヘッダー​

各HTTPレスポンスは、同じエンベロープを使用します:

成功(データ付き):

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

成功(データなし — 変更の終点のみ):

{ "ok": true }

エラー:

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

非推奨のエンドポイント:

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

HTTPステータスコード​

コード意味
200成功
400不正なクエリ — ボディが無効、セレクタが曖昧、必須フィールドの入力漏れ
404デバイス、セッション、またはリソースが見つかりません
405許可されていないメソッド

WebSocketメッセージのフォーマット​

メッセージはJSONオブジェクトです。最上位のキーはデバイスグループの名前です (inverse3, verse_grip, wireless_verse_grip) および任意のキー session セッション単位での設定について。

クライアント → サービス(注文):

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

サービス → クライアント(状態):

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

このサービスの最初のメッセージには、以下の内容が含まれています。 config (完全なスナップショット);以下のメッセージには、以下の内容のみが含まれています state et status. 詳細はこちら WebSocketプロトコル ワークフロー全体について。

コンテンツの種類​

本文を含むすべてのHTTPリクエストは、以下を送信する必要があります。 Content-Type: application/json. WebSocketのメッセージは、常にプレーンテキストのJSONフレームです。

未知の鍵​

未知のキーは、何のメッセージも表示せずに無視されます

現在、本サービスでは認識されないJSONキーをエラーを発生させることなく無視しています。もし コマンドが効果がないように見える場合は、サービスのログを確認し、APIリファレンスに記載されている フィールド名と照らし合わせてご確認ください。 この動作は今後のバージョンで変更される予定です(未知のキーが 警告イベントを発生させるようになります)。