跳到正文
docai.cc

DOCAI · 课程 · L1 · 20 分钟

读懂一次 API 报错

拿到报错先看状态码、再看响应体的 type 与 message:三步把「一句话」定位到具体环节,而不是靠猜。

你将学会

  • 能从状态码判断问题属于哪一类
  • 能从响应体里找到真正有用的字段
  • 能区分「改请求」「等一等」「找服务商」三种处置

先看状态码

状态码 大意 先检查
400 请求本身有问题 字段名、类型、模型名
401 没通过鉴权 key 是否有效、请求头格式
403 通过了,但没权限 该 key 是否开通此模型/地区
404 找不到 路径、base URL、模型名
429 太快了 退避重试,见什么是限流
5xx 服务端问题 等待或联系服务商

状态码只给类别,不给原因。下一步必须看响应体。

再看响应体

多数服务的错误结构类似:

{
  "error": {
    "type": "invalid_request_error",
    "code": "model_not_found",
    "message": "The model `xxx` does not exist"
  }
}

三个字段里,message 最具体,code 最适合拿去搜。把 message 原文粘进答案库搜索,通常比读文档快。

最后决定怎么办

  • 改请求:400、404(路径或模型写错)、401(key 放错位置)。
  • 等一等:429、5xx。指数退避,别立即重试。
  • 找人:403(权限未开通)、持续 5xx、余额问题。

一个常见误判

只看到 401 就去换 key。实际上 key 可能没问题,是请求头少了 Bearer 前缀,或者把 key 放进了 URL 参数。先核对格式,再换 key——不然新 key 一样失败。

自测

  1. 400 和 422 都表示请求有问题,为什么先看 message 比先查文档快?
  2. 429 时立即重试会怎样?
  3. 为什么「换个新 key」经常解决不了 401?

涉及的概念