當您的請求被限制時
受限速的請求會回傳 HTTP429,回應主體為 {"message": "Rate limit exceeded"}。請在重試前先行退避,並加入隨機抖動以平滑突發流量。
超過成本、深度或別名限制的查詢則會被拒絕,回傳 HTTP 400,並在 GraphQL 的 errors 陣列中包含 GRAPHQL_VALIDATION_FAILED。重試並無幫助:請移除欄位或拆分查詢。速率限制 列出了各項限制,以及查詢成本的計算方式。
最佳實務
- 只要求所需的資料。 將您的選取欄位縮減至實際會用到的欄位。
- 以分頁方式擷取清單。 回傳 20 個項目的查詢,其成本與回傳單一項目的查詢相同,且遠低於 20 個個別請求的總成本。
- 使用 webhook 取代輪詢。 關於 webhook 的設定方式,請參閱設定 App Widget。
- 重試時採用指數退避與隨機抖動——切勿在緊密迴圈中重試。
- 在存取權杖到期前提前更新,以避免在高負載下發生 401 → 核發權杖 → 重試 的循環。