Rate-Limit API 応答をシミュレートする
Rate-Limit ヘッダーは、特定の期間内にクライアントが行うことができる要求の数を制限するために HTTP 応答で使用されます。
サーバーは、クライアントの要求に応答してこれらのヘッダーを送信して、許可される要求の数と、制限に達するまでに残っている要求の数を示します。
応答ヘッダー フィールドは RateLimit-Limit
、現在の時間枠内のクライアントに関連付けられている要求クォータを示します。 クライアントがその制限を超えた場合は、サービスが提供されない可能性があります。
カスタム レート制限のサポート
レート制限を超えると、カスタム エラー メッセージを含む状態コードを 403 Forbidden
返すなど、カスタム動作を使用する API もあります。 開発プロキシを使用すると、 プロパティの 値を使用 Custom
して、これらのカスタム動作を whenLimitExceeded
シミュレートできます。
次の例では、GitHub API のレート制限をシミュレートするために、devproxyrc ファイルで RateLimitingPlugin を構成する方法を構成する方法を示します。
{
"rateLimiting": {
"headerLimit": "X-RateLimit-Limit",
"headerRemaining": "X-RateLimit-Remaining",
"headerReset": "X-RateLimit-Reset",
"costPerRequest": 1,
"resetTimeWindowSeconds": 3600,
"warningThresholdPercent": 0,
"rateLimit": 60,
"resetFormat": "UtcEpochSeconds",
"whenLimitExceeded": "Custom",
"customResponseFile": "github-rate-limit-exceeded.json"
}
}
customResponseFile
には、アプリがレート制限に達したときにプロキシが返す応答が含まれます。
{
"statusCode": 403,
"headers": [
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
}
],
"body": {
"message": "You have exceeded a secondary rate limit and have been temporarily blocked from content creation. Please retry your request again later.",
"documentation_url": "https://docs.github.com/rest/overview/resources-in-the-rest-api#secondary-rate-limits"
}
}
次の手順
の詳細については、 RateLimitingPlugin
こちらを参照してください。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
Dev Proxy