跳过至主要内容

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 和 status 仅包含这些内容。有关完整工作流,请参阅:WebSocket 协议 请参阅。

内容类型​

伴随本文的所有 HTTP 请求,Content-Type: application/json 必须发送该消息。WebSocket 消息始终是明文 JSON 帧。

未知键​

未识别的键将被默认忽略

该服务目前会无错误地忽略未识别的 JSON 键。如果命令似乎没有生效,请检查服务日志,并将字段名与API 参考文档进行核对。 此行为预计将在未来版本中进行更改(未知键将触发警告事件)。