Simulera API-svar för hastighetsbegränsning
Rate-Limit-huvuden används i HTTP-svar för att begränsa antalet begäranden som en klient kan göra inom en viss tidsperiod.
Servern skickar dessa huvuden som svar på en klients begäran för att ange hur många begäranden som tillåts och hur många begäranden som återstår innan gränsen nås.
Svarshuvudfältet RateLimit-Limit
anger begärandekvoten som är associerad med klienten i det aktuella tidsfönstret. Om klienten överskrider den gränsen kanske den inte kan betjänas.
Stöd för anpassad hastighetsgräns
När du överskrider hastighetsgränsen använder vissa API:er anpassade beteenden, till exempel att returnera en 403 Forbidden
statuskod med ett anpassat felmeddelande. Med Dev Proxy kan du simulera dessa anpassade beteenden genom att använda Custom
värdet för whenLimitExceeded
egenskapen.
I följande exempel visas hur du kan konfigurera hur du kan konfigurera RateLimitingPlugin i devproxyrc-filen för att simulera hastighetsbegränsningar för GitHub-API:et.
{
"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
Innehåller svaret som proxyn returnerar när din app nådde hastighetsgränsen.
{
"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"
}
}
Nästa steg
Läs mer om RateLimitingPlugin
.