Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
De un vistazo
Objetivo: Simular el comportamiento de limitación de tasa en cualquier API
Hora: 10 minutos
Plugins:RateLimitingPlugin
Requisitos previos:Configuración del proxy de desarrollo
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 le proporcione servicio.
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. Dev Proxy permite simular estos comportamientos personalizados usando el valor Custom para la propiedad whenLimitExceeded.
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.
Archivo: devproxyrc.json (sección de configuración de limitación de tasa)
{
"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.
Archivo: github-rate-limit-exceeded.json
{
"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.
Consulte también
- RateLimitingPlugin : referencia completa
- ¿Qué es la limitación de velocidad : conceptos?
- Cómo controlar la limitación de velocidad : procedimientos recomendados
- Glosario : terminología del proxy de desarrollo