レート制限は、特定の時間枠内でエンドポイントに対して行えるリクエストの数を制御します。これらの制限は、サービスの安定性を確保し、Robloxのリソースを悪用から保護するのに役立ちます。
発見
レート制限を特定するには、リファレンスドキュメントとレスポンスヘッダーの2つの方法があります。
ドキュメントページ
公開されているレート制限は、各エンドポイントのドキュメントページの制限セクションにあります。リクエストを行う前に、これらのセクションを確認して適用されるレート制限を理解してください。
レスポンスヘッダー
多くのAPIレスポンスには、現在のレート制限状況に関する情報を提供するヘッダーが含まれています。
| ヘッダー | 説明 |
|---|---|
| x-ratelimit-limit | レート制限ウィンドウ内で許可されているリクエストの総数。この数には異なる時間枠のための複数の制限値が含まれる場合があります。 |
| x-ratelimit-remaining | 現在の認証でまだ行えるリクエストの数。この値が0に達すると、HTTP 429レスポンスを受け取ります。 |
| x-ratelimit-reset | レート制限の割り当てが完全な制限にリセットされるまでの残り秒数。 |
APIレスポンスのレート制限ヘッダーの例を以下に示します:
x-ratelimit-limit: 1000, 1000;w=60, 1000;w=60x-ratelimit-remaining: 998x-ratelimit-reset: 20
この例では:
- あなたは合計制限の998リクエストが残っています。
- あなたのクォータは20秒後にリセットされます。
振る舞い
レート制限の挙動は、認証方法やリクエストの発信元によって異なり、Robloxゲーム内からリクエストを行うかどうかを含みます。
APIキー
APIキーのレート制限は、所有者ごとにすべてのAPIキーに適用され、所有者はユーザーまたはグループのいずれかです。これらの制限は、リクエストの発信元に関係なく、一貫して施行されます。すなわち、HttpService、Webアプリケーション、またはその他のソースからのリクエストに関してです。
HttpServiceを使用したゲーム内
HttpServiceを使用してゲーム内のエンドポイントを呼び出すと、リクエストは各Robloxゲームサーバーごとに1分あたり500のHTTPリクエストという固定制限に寄与します。詳細についてはゲーム内HTTPリクエストを参照してください。
OAuth 2.0
OAuth 2.0のレート制限は、アクセストークンごとに適用されます。各アクセストークンはユーザーとアプリケーションのユニークな組み合わせを表すため、アプリを使用する各ユーザーは独自のレート制限クォータを受け取ります。
レート制限の処理
ドキュメントに記載された制限、悪用防止、高負荷シナリオによるHTTP 429(リクエストが多すぎる)レスポンスを期待し、処理するようにコードを書いてください。レート制限に達した場合は、retry-afterレスポンスヘッダーをチェックして再試行のタイミングをガイドとして利用してください。retry-afterレスポンスヘッダーが存在しない場合、指数バックオフ再試行戦略を実装してください。