Plugin zur Ratenbegrenzung

Simuliert Verhalten der Rate-Limit-Funktion.

Screenshot einer Eingabeaufforderung mit Dev Proxy-Simulationsrate für GitHub-APIs.

Konfigurationsbeispiel

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

Konfigurationseigenschaften

Eigentum Beschreibung Vorgabe
headerLimit Name des Antwortheaders, der den Grenzwert für die Ratebegrenzung kommuniziert RateLimit-Limit
headerRemaining Name des Antwortheaders, der die verbleibende Anzahl von Ressourcen vor dem Zurücksetzen kommuniziert RateLimit-Remaining
headerReset Name des Antwortheaders, der die verbleibende Zeit bis zum Zurücksetzen kommuniziert RateLimit-Reset
headerRetryAfter Name des Antwortheaders, der den Wiederholungs-nach-Zeitraum kommuniziert Retry-After
costPerRequest Wie viele Ressourcen kosten eine Anforderung 2
resetTimeWindowSeconds Wie lange in Sekunden bis zum nächsten Zurücksetzen 60
warningThresholdPercent Der Prozentsatz der Verwendung, die überschritten wird, beginnt mit der Rückgaberate, die Antwortheader begrenzt. 80
rateLimit Anzahl der Ressourcen für ein Zeitfenster 120
whenLimitExceeded Das Verhalten, das das Plug-In verwenden soll, wenn der Grenzwert überschritten wird. Verwenden Sie Throttle oder Custom. Throttle
resetFormat Das Format, das verwendet wird, um zu bestimmen, wann der Satzgrenzwert zurückgesetzt wird. Verwenden Sie SecondsLeft oder UtcEpochSeconds. SecondsLeft
customResponseFile Datei mit einer benutzerdefinierten Fehlerantwort, die beim Überschreiten des Grenzwerts verwendet wird. rate-limit-response.json

Befehlszeilenoptionen

Nichts

Bemerkungen

Benutzerdefinierter Antworttext

Wenn Sie die body Eigenschaft in der benutzerdefinierten Antwortdatei auf ein JSON-Objekt oder array festlegen, serialisiert Dev Proxy sie in JSON. Wenn Sie die Zeichenfolge auf eine Zeichenfolge festlegen, sendet Dev Proxy die Zeichenfolge as-isohne umgebende Anführungszeichen. Da Dev Proxy standardmäßig den Header application/jsonangibt, legen Sie den Content-TypeContent-Type Header so fest, dass er Mit Ihren Inhalten übereinstimmt, wenn Sie ztext/plain. B. nicht-JSON-Inhalte zurückgeben.

Benutzerdefinierter Antwortheader Content-Type

Wenn whenLimitExceeded festgelegt ist und die benutzerdefinierte Antwort über einen body Header verfügtCustom, aber keinen Header definiertContent-Type, gibt Dev Proxy die Antwort mit dem Content-Type: application/json Header zurück. Um einen anderen Inhaltstyp zurückzugeben, fügen Sie der benutzerdefinierten Antwortdatei den Content-Type Header hinzu. Dev Proxy verwendet den von Ihnen angegebenen Wert.

Nächster Schritt