JSON 仕様
すべてのサービスインターフェースは JSON を使用しています。このページでは、共有されているスキーマについて記載しています。
ポート
| ポート | インターフェース | バージョン |
|---|---|---|
| 10001 | HTTP REST + WebSocket(シミュレーションチャネル) | v3.1(現在) |
| 10020 | WebSocket(イベントチャネル、読み取り専用) | — |
| 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 和 status。詳細な手順については、以下をご覧ください。
WebSocket プロトコル。
コンテンツの種類
リクエスト本文を含むすべての HTTP リクエストは、必ず送信する必要があります Content-Type: application/json。
WebSocket メッセージは常にプレーンテキストの JSON フレームです。
未知のキー
未知のキーは黙って無視されます
現在、本サービスでは認識できない JSON キーを無視しており、エラーは発生しません。コマンドが機能していないと思われる場合は、サービスのログを確認し、API リファレンスと照らし合わせてフィールド名を確認してください。 この動作は今後のバージョンで変更される予定です(未知のキーが検出された場合、警告イベントが発生するようになります)。