レート制限プラグイン

レート制限動作をシミュレートします。

GitHub API でレート制限をシミュレートする開発プロキシを使用したコマンド プロンプトのスクリーンショット。

構成の例

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "RateLimitingPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "rateLimiting"
    }
  ],
  "rateLimiting": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/ratelimitingplugin.schema.json",
    "costPerRequest": 2,
    "rateLimit": 120
  }
}

構成プロパティ

財産 形容 デフォルト
headerLimit レート制限の制限を伝える応答ヘッダーの名前 RateLimit-Limit
headerRemaining リセット前のリソースの残りの数を伝える応答ヘッダーの名前 RateLimit-Remaining
headerReset リセットまでの残り時間を伝える応答ヘッダーの名前 RateLimit-Reset
headerRetryAfter 再試行後の期間を伝える応答ヘッダーの名前 Retry-After
costPerRequest 要求コストが発生するリソースの数 2
resetTimeWindowSeconds 次にリセットされるまでの秒数 六十
warningThresholdPercent 超過した場合の使用率が応答ヘッダーのレート制限を返し始める 80
rateLimit 時間枠のリソースの数 120
whenLimitExceeded 制限を超えたときにプラグインが使用する必要がある動作。 Throttle または Customを使用します。 Throttle
resetFormat レート制限がリセットされるタイミングを決定するために使用される形式。 SecondsLeft または UtcEpochSecondsを使用します。 SecondsLeft
customResponseFile 制限を超えたときに使用されるカスタム エラー応答を含むファイル。 rate-limit-response.json

コマンド ライン オプション

何一つ

解説

カスタム応答本文

カスタム応答ファイルの body プロパティを JSON オブジェクトまたは配列に設定すると、Dev Proxy によって JSON にシリアル化されます。 文字列に設定すると、Dev Proxy は引用符を囲まずに as-is文字列を送信します。 開発プロキシでは既定で Content-Type ヘッダーがapplication/jsonされるため、text/plainなどの JSON 以外のコンテンツを返すときに、Content-Type ヘッダーをコンテンツと一致するように設定します。

カスタム応答 Content-Type ヘッダー

whenLimitExceededが Custom に設定されていて、カスタム応答にbodyがあるが、Content-Type ヘッダーが定義されていない場合、開発プロキシは Content-Type: application/json ヘッダーを使用して応答を返します。 別のコンテンツ タイプを返すには、カスタム応答ファイルに Content-Type ヘッダーを追加します。 開発プロキシでは、指定した値が使用されます。

次のステップ