API 速率限制与重试
API 速率限制和重试机制,是客户端与 API 之间约定的一部分。客户端应当区分成功、校验错误、身份验证失败、速率限制和临时性服务器错误。用 JSON 还是 XML 不会改变 HTTP 语义,而 IPv4/IPv6 值必须原样保存,不能按 IPv4 的长度来假设。
如何处理响应
校验 Content-Type、状态码、文档规定的字段和配额。HTTP 429 要单独处理:响应中带有 Retry-After 时遵循它,并使用有次数上限、带随机抖动(jitter)的指数退避。重试之前先考虑操作是否幂等。日志中可以记录请求标识符、状态和延迟,但绝不能记录 API 密钥。
关键细节
API 返回 429 时,如果带有 Retry-After,就按它来等待,而不是盲目地休眠固定时长。要限制重试次数,为指数退避加入随机抖动,并避免自动重放可能产生重复副作用的操作。如需发送真实请求、查看当前的 API 约定,请参阅 2IP API。