Simulace odpovědí rozhraní API pro omezení rychlosti
Hlavičky limitu rychlosti se používají v odpovědích HTTP k omezení počtu požadavků, které klient může v daném časovém období provést.
Server odešle tyto hlavičky v reakci na požadavek klienta, aby indikuje, kolik požadavků je povoleno a kolik požadavků zůstává před dosažením limitu.
Pole RateLimit-Limit
hlavičky odpovědi označuje kvótu požadavku přidruženou k klientovi v aktuálním časovém intervalu. Pokud klient tento limit překročí, nemusí se obsluhovat.
Podpora vlastních omezení rychlosti
Když překročíte limit rychlosti, některá rozhraní API používají vlastní chování, například vrácení stavového 403 Forbidden
kódu s vlastní chybovou zprávou. Dev Proxy umožňuje simulovat toto vlastní chování pomocí Custom
hodnoty vlastnosti whenLimitExceeded
.
Následující příklad ukazuje, jak nakonfigurovat způsob konfigurace RateLimitingPlugin v souboru devproxyrc pro simulaci limitů rychlosti pro rozhraní API GitHubu.
{
"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"
}
}
Obsahuje customResponseFile
odpověď, kterou proxy server vrátí, když vaše aplikace dosáhla limitu rychlosti.
{
"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"
}
}
Další kroky
Další informace o nástroji RateLimitingPlugin
.