跳转至正文

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