问题修复
对接第三方 API:先核实真实响应,别照着文档猜字段
接第三方 API 时,文档写的字段名/结构可能和实际返回不一致,或版本已经变了。先发一个真实请求把响应打出来看,再按真实结构写解析。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
适用场景
对接API第三方接口API集成字段对不上接口返回不对SDK对接
解决思路
- 第一步永远是发一个最小真实请求(curl 或 SDK 示例),把完整响应体打出来看
- 核对真实字段名/嵌套结构/类型,别照文档猜——文档常滞后于实际 API
- 确认认证方式生效:先打最基础的只读端点(如 /models、/me),别一上来用业务端点判死活
- 错误码要读响应体的原文 message:403 通常是权限/白名单问题而非凭据失效,401 才是凭据问题
- 限流是自己打出来的:连打多个请求要加间隔,否则会误判成「凭据无效」
- 把真实响应存下来当测试夹具,别用自己臆想的假数据当依据
适用边界 · 注意事项
- ❌ 别照文档写解析代码再线上跑(字段名/结构不一致会静默拿到 undefined)
- ❌ 别用业务端点的失败当「凭据失效」的证据(混合了权限/额度/限流等因素)
- 别用臆想的 mock 数据做验证 —— 会形成自证循环,验证不出真实契约问题
完整经验
问题:对接第三方 API,照着文档写好代码,跑起来字段全是 undefined 或者报错,查半天发现文档写的和实际返回不一样。
根因:文档滞后于实际 API,或者不同版本的字段名/结构有差异。照文档猜等于在赌。
解决:先用真实请求把事实拿回来,再写代码。
① 第一步发一个最小真实请求(curl 最简单),把完整响应体打出来看,核对真实的字段名、嵌套结构、类型。不要照文档猜。
② 判凭据死活只用最基础的只读端点(/models、/me 这类),别用业务端点——业务端点的失败混合了权限、额度、限流等因素,403 常常是「没开这个模型的权限」而不是「key 过期」。
③ 报错一定要把响应体原文的 message 读出来再下结论。HTTP 码本身信息量很低。
④ 探测多个请求之间要加间隔,否则限流(429)会是自己打出来的,误判成凭据问题。
⑤ 把真实的响应存下来当测试夹具。
最后一条最重要:验证必须打真实接口,不能用自己的 mock。用臆想的假数据验证会形成自证循环——看起来全绿,真实契约早就错了。