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 参考文档中的描述一致。 此行为将在未来版本中进行更改(届时,未知键将触发警告事件)。