共用方式為


如何處理速率限制

速率限制 是 API 提供者用來管理在特定時段內對其服務提出要求數目的常見技術。 API 提供者會使用速率限制來確保其服務仍可供所有使用者使用及回應,以及防止濫用或過度使用服務。

當您在應用程式中使用雲端 API 時,您應該瞭解其速率限制。 下列技術可協助您處理應用程式中的速率限制:

  • 瞭解速率限制。 請檢查您所使用的 API 文件以瞭解其調用限制。 速率限制可能取決於您使用的 API 提供者或服務方案。 例如,某些 API 可能會有不同的免費和付費方案費率限制。
  • 使用速率限制資訊。 使用速率限制的 API 通常會在響應標頭中傳達目前的速率限制。 例如,標頭 RateLimit-Remaining 會指出目前視窗中保留的要求數目。 如果您收到此標頭設定為 0 的回應,您知道您已達到速率限制,而且應該在傳送另一個要求之前等候下一個視窗。 RateLimit-Reset 標頭表示速率限制重設的時間。 某些 API 只會在您達到臨界值之後傳送 RateLimit-... 標頭。 例如,當您的要求剩餘 10 個% 時。
  • 優化 API 使用量。 有些服務會根據其複雜性,將不同的成本指派給不同的要求。 例如,某些 API 可能會針對傳回更多數據的要求收取更多費用。 若要降低應用程式的成本,請只擷取您所需的數據,以優化 API 使用量。 如果 API 支援批次要求,請使用批次要求。 其可協助您減少處理回應所需的資源數目,並維持在速率限制內。
  • 實作本地速率限制器。 在應用程式本身內實作速率限制器,以限制在特定時段內對 API 提出的要求數目。 您可以使用令牌桶或漏桶演算法等技術來執行此作業,讓應用程式可在每個時段提出許多要求。 進一步的要求會被排入佇列或被捨棄。
  • 避免超過速率限制。 當您超過速率限制時,API 會限制所有後續要求,這些要求通常會傳回 HTTP 狀態代碼。 一般而言,節流對於應用程式的輸送量影響更大,而不是速率限制。 使用速率限制回應標頭中公開的資訊,以保持在速率限制內,並避免過載。

藉由使用這些技術,您可以建置可復原速率限制的應用程式,即使 API 負載過重,仍可繼續運作。

後續步驟