次の方法で共有


レート制限 API 応答をシミュレートする

レート制限ヘッダーは、特定の期間内にクライアントが行うことができる要求の数を制限するために、HTTP 応答で使用されます。

サーバーは、クライアントの要求に応答してこれらのヘッダーを送信し、許可される要求の数と、制限に達するまでの要求の数を示します。

RateLimit-Limit応答ヘッダー フィールドは、現在の時間枠内のクライアントに関連付けられている要求クォータを示します。 クライアントがその制限を超えた場合は、サービスが提供されない可能性があります。

カスタム レート制限のサポート

レート制限を超えると、カスタム エラー メッセージを含む 403 Forbidden 状態コードを返すなどのカスタム動作を使用する API もあります。 開発プロキシを使用すると、whenLimitExceeded プロパティのCustom値を使用して、これらのカスタム動作をシミュレートできます。

次の例は、devproxyrc ファイルで RateLimitingPlugin を構成して、GitHub API のレート制限をシミュレートする方法を示しています

{
  "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 を参照してください。