当你被限速时
被限速的请求会返回 HTTP429,响应体为 {"message": "Rate limit exceeded"}。重试前请先退避,并加入抖动以平滑突发流量。
超过成本、深度或别名限制的查询会被拒绝,返回 HTTP 400,GraphQL 的 errors 数组中会包含 GRAPHQL_VALIDATION_FAILED。重试无济于事:请精简字段或拆分查询。速率限制 列出了各项限制以及查询成本的计算方式。
最佳实践
- 请求更少的数据。 将选择集裁剪到你实际使用的字段。
- 分页获取列表。 返回 20 个条目的查询与返回单个条目的查询成本相同,且远低于 20 次单独请求的成本。
- 使用 webhook 而非轮询。 有关 webhook 设置,请参阅配置应用小组件。
- 使用指数退避加抖动进行重试,切勿在紧密循环中反复重试。
- 提前刷新访问令牌,以避免在高负载下出现 401 → 重新生成令牌 → 重试 的循环。