Simular respuestas de api de límite de velocidad
Los encabezados rate-Limit se usan en respuestas HTTP para limitar el número de solicitudes que un cliente puede realizar dentro de un período de tiempo determinado.
El servidor envía estos encabezados en respuesta a la solicitud de un cliente para indicar cuántas solicitudes se permiten y cuántas solicitudes permanecen antes de alcanzar el límite.
El RateLimit-Limit
campo de encabezado de respuesta indica la cuota de solicitud asociada al cliente en el período de tiempo actual. Si el cliente supera ese límite, es posible que no se sirva.
Compatibilidad con el límite de velocidad personalizado
Cuando se supera el límite de frecuencia, algunas API usan comportamientos personalizados, como devolver un 403 Forbidden
código de estado con un mensaje de error personalizado. El proxy de desarrollo permite simular estos comportamientos personalizados mediante el Custom
valor de la whenLimitExceeded
propiedad .
En el ejemplo siguiente se muestra cómo puede configurar RateLimitingPlugin en el archivo devproxyrc para simular los límites de velocidad de la API de 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"
}
}
customResponseFile
contiene la respuesta que devuelve el proxy cuando la aplicación alcanzó el límite de velocidad.
{
"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"
}
}
Pasos siguientes
Más información sobre RateLimitingPlugin
.