Simular respostas da API de limite de taxa
Os cabeçalhos de limite de taxa são usados em respostas HTTP para limitar o número de solicitações que um cliente pode fazer dentro de um determinado período de tempo.
O servidor envia esses cabeçalhos em resposta à solicitação de um cliente para indicar quantas solicitações são permitidas e quantas solicitações permanecem antes que o limite seja atingido.
O RateLimit-Limit
campo de cabeçalho de resposta indica a cota de solicitação associada ao cliente na janela de tempo atual. Se o cliente exceder esse limite, poderá não ser servido.
Suporte a limite de taxa personalizado
Quando você excede o limite de taxa, algumas APIs usam comportamentos personalizados, como retornar um código de 403 Forbidden
status com uma mensagem de erro personalizada. O Dev Proxy permite simular esses comportamentos personalizados usando o Custom
valor da whenLimitExceeded
propriedade.
O exemplo a seguir mostra como você pode configurar RateLimitingPlugin no arquivo devproxyrc para simular limites de taxa para a API do GitHub.
{
"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"
}
}
O customResponseFile
contém a resposta que o proxy retorna quando seu aplicativo atingiu o limite de taxa.
{
"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"
}
}
Próximos passos
Saiba mais sobre o RateLimitingPlugin
.