Simular respostas da API Rate-Limit
Os cabeçalhos Rate-Limit são usados em respostas HTTP para limitar o número de solicitações que um cliente pode fazer em 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, ele poderá não ser atendido.
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 Proxy de Desenvolvimento 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óximas etapas
Saiba mais sobre o RateLimitingPlugin
.