WtyczkaOgraniczeniaPrzepustowości

Symuluje zachowania limitu szybkości.

Zrzut ekranu wiersza polecenia z serwerem proxy deweloperów symulującym ograniczanie szybkości w interfejsach API usługi GitHub.

Przykład konfiguracji

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

Właściwości konfiguracji

Własność Opis Domyślny
headerLimit Nazwa nagłówka odpowiedzi, który komunikuje limit szybkości RateLimit-Limit
headerRemaining Nazwa nagłówka odpowiedzi, który komunikuje pozostałą liczbę zasobów przed zresetowaniem RateLimit-Remaining
headerReset Nazwa nagłówka odpowiedzi, który komunikuje pozostały czas do momentu zresetowania RateLimit-Reset
headerRetryAfter Nazwa nagłówka odpowiedzi, który komunikuje się z okresem ponawiania próby Retry-After
costPerRequest Ile zasobów kosztuje żądanie 2
resetTimeWindowSeconds Jak długo w sekundach do następnego resetowania 60
warningThresholdPercent Procent użycia, który występuje, gdy przekroczono, rozpoczyna zwracanie nagłówków odpowiedzi ograniczania szybkości 80
rateLimit Liczba zasobów dla przedziału czasu 120
whenLimitExceeded Zachowanie, które wtyczka powinna używać w przypadku przekroczenia limitu. Użyj Throttle lub Custom. Throttle
resetFormat Format używany do określania, kiedy limit szybkości jest resetowany. Użyj SecondsLeft lub UtcEpochSeconds. SecondsLeft
customResponseFile Plik zawierający niestandardową odpowiedź o błędzie używaną w przypadku przekroczenia limitu. rate-limit-response.json

Opcje wiersza polecenia

Żaden

Remarks

Treść odpowiedzi niestandardowej

Jeśli właściwość zostanie ustawiona body w niestandardowym pliku odpowiedzi na obiekt lub tablicę JSON, serwer proxy dewelopera serializuje go na JSON. Jeśli ustawisz go na ciąg, serwer proxy dewelopera wysyła ciąg as-is, bez otaczających cudzysłowów. Ponieważ serwer proxy deweloperów Content-Type domyślnie ustawia nagłówek na application/json, ustaw Content-Type nagłówek tak, aby był zgodny z zawartością, gdy zwracasz zawartość inną niż JSON, na przykład text/plain.

Niestandardowy nagłówek odpowiedzi Content-Type

Gdy whenLimitExceeded jest ustawiona wartość , Custom a odpowiedź niestandardowa ma body wartość , ale nie definiuje Content-Type nagłówka, serwer proxy deweloperów zwraca odpowiedź z nagłówkiem Content-Type: application/json . Aby zwrócić inny typ zawartości, dodaj Content-Type nagłówek do niestandardowego pliku odpowiedzi. Serwer proxy deweloperów używa określonej wartości.

Następny krok