Plugin pro omezení rychlosti

Simuluje chování omezování rychlosti.

snímek obrazovky s příkazovým řádkem s dev proxy simulující omezování rychlosti v rozhraních API GitHubu

Příklad konfigurace

{
  "$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
  }
}

Vlastnosti konfigurace

Vlastnost Popis Výchozí
headerLimit Název hlavičky odpovědi, která komunikuje s limitem rychlosti RateLimit-Limit
headerRemaining Název hlavičky odpovědi, která před resetováním komunikuje se zbývajícím počtem prostředků RateLimit-Remaining
headerReset Název hlavičky odpovědi, která oznamuje zbývající čas do resetování RateLimit-Reset
headerRetryAfter Název hlavičky odpovědi, která oznamuje opakování po uplynutí období Retry-After
costPerRequest Kolik prostředků vyžaduje náklady 2
resetTimeWindowSeconds Jak dlouho v sekundách do dalšího resetování 60
warningThresholdPercent Procento použití, které se používá při překročení, začne vracet hlavičky odpovědi omezující rychlost 80
rateLimit Počet prostředků pro časové období 120
whenLimitExceeded Chování modulu plug-in by se mělo použít při překročení limitu. Použijte Throttle nebo Custom. Throttle
resetFormat Formát použitý k určení, kdy se limit rychlosti resetuje. Použijte SecondsLeft nebo UtcEpochSeconds. SecondsLeft
customResponseFile Soubor obsahující vlastní chybovou odpověď použitou při překročení limitu rate-limit-response.json

Možnosti příkazového řádku

Žádný

Remarks

Vlastní text odpovědi

Pokud vlastnost v souboru vlastní odpovědi nastavíte body na objekt nebo pole JSON, dev Proxy ji serializuje na JSON. Pokud ho nastavíte na řetězec, dev Proxy odešle řetězec as-isbez okolních uvozovek. Vzhledem k tomu, že Dev Proxy nastaví hlavičku Content-Type tak application/json, aby odpovídala vašemu Content-Type obsahu, když například text/plainvrátíte jiný obsah než JSON.

Vlastní hlavička odpovědi Content-Type

Pokud whenLimitExceeded je nastavená hodnota Custom a vlastní odpověď má hlavičku body , ale nedefinuje hlavičku Content-Type , dev proxy vrátí odpověď se záhlavím Content-Type: application/json . Pokud chcete vrátit jiný typ obsahu, přidejte hlavičku Content-Type do souboru vlastní odpovědi. Dev Proxy používá zadaná hodnota.

Další krok