错误响应约定
- 成功响应的
code为数字0 - 错误响应的
code可能是整数或字符串;客户端应先使用String(code)归一化后再比较 - 不要根据
message文本编写判断逻辑;message用于说明错误,可能随具体场景变化 - HTTP 状态码表示请求层面的结果,
code表示具体业务原因,客户端应同时检查两者
HTTP API
HTTP 错误响应至少包含code 和 message,部分接口还会返回 error 或 data:
WebSocket 建连失败
在 WebSocket 升级完成前发生的鉴权错误是普通 HTTP 错误响应,此时连接尚未建立,客户端不会收到 WebSocket 消息。WebSocket 建连后错误
连接建立后的订阅或消息错误通过 WebSocket 消息返回,cmd 表示触发错误的命令:
错误码速查表
认证错误(1xxx)
参数错误(2xxx)
HTTP 请求中的代码歧义返回字符串
AMBIGUOUS_SYMBOL;WebSocket 订阅中的代码歧义当前返回数字 2003。两者都应根据响应中的 available_types 补充 type。
访问限制与配额错误(3xxx)
WebSocket 频道权限错误(4xxx)
当前公开 WebSocket 连接使用以下 4xxx 错误:
非法 JSON 和未知命令当前均返回
cmd="error"、code=2001。4001–4004 不属于当前公开接口的返回契约,因此不应依赖这些代码编写客户端逻辑。
服务错误(5xxx)
5004 的 WebSocket 订阅响应中,data 可能包含以下字段:
symbols:已经订阅成功的代码,不要重复订阅failed_symbols:本次未成功的全部代码retryable_symbols:可以稍后重试的代码子集retryable:是否存在可重试代码
