状态码与错误处理
所有 HTTP 接口统一返回外层 code 字段,并与 HTTP 状态码对齐:
状态码表
| code | 含义 | 处理建议 |
|---|---|---|
| 200 | 操作成功 (Success) | 正常解析返回数据 |
| 400 | 参数错误 (Bad Request) | 检查入参字段名、格式、必填项或枚举值范围 |
| 401 | 未授权 (Unauthorized) | 检查或刷新请求 Header 中的 apiKey(失效请重新生成或轮换) |
| 403 | 权限不足 (Forbidden) | 当前账号或套餐无权限访问该标的,或单次请求数据量超出套餐配额 |
| 404 | 标的不存在 (Not Found) | 校验输入的 sym / syms 产品代码是否正确 |
| 429 | 频率超限 (Too Many Requests) | 降低请求频率(默认单 apiKey 限频 10 次/秒),建议配合客户端本地缓存 |
| 500 | 服务端异常 (Internal Server Error) | 服务端临时故障,建议稍后重试 |
WebSocket 控制帧状态码
WebSocket 控制帧(event: 0)同样使用 code 字段,常见取值:
| code | 含义 | 处理建议 |
|---|---|---|
| 200 | 成功 | 订阅 / 退订 / 心跳应答成功 |
| 401 | 未授权 | apiKey 无效或过期,连接将被关闭 |
| 408 | 连接假死 | 服务端 60 秒未收到数据,主动断开;客户端重连 |
| 429 | 频率 / 配额超限 | 降低订阅频率或升级套餐 |
客户端处理建议
- 重试策略:
500与429建议指数退避重试;400/404为客户端错误,重试无意义。 - 限频配合:默认单 apiKey 10 次/秒,建议客户端本地缓存最近数据,避免高频重复请求。
- 429 退避:收到
429后至少冷却 1 秒再重试,避免触发更长的封禁窗口。