Rate Limit
Este interceptor define la cantidad máxima de peticiones (requests) permitidas en un intervalo de tiempo "completo" (a partir de la hora del servidor) y se puede introducir en el flujo de API o directamente en el flujo de un plan.
En el caso de una API, el interceptor puede insertarse a nivel de la API en su conjunto, de un recurso o de una operación. En todos estos casos, cada petición aumentará la tasa total independientemente de la persona que llama, y respetando el intervalo definido. Si se añade al flujo de un plan, aumentará la tasa específica de la persona que llama (aplicación o token de acceso). En ambos casos, se puede agregar un nuevo header que muestre el número de peticiones restantes.
| Es fácil confundir el funcionamiento del Spike Arrest con otro interceptor que controla el tráfico, el Spike Arrest. Por esto, hemos incluido una definición más detallada de cada uno, sus diferencias y ejemplos de configuración aquí. |
Configuración
El interceptor sólo puede insertarse en el flujo de requisición (request). Para configurarlo, tenemos que rellenar algunas propiedades, como se muestra en la imagen de arriba.
-
Configuration type: Determina el tipo de configuración a ser usada por el interceptor, de las cuales tenemos 2 opciones.
-
Total calls: Configura el interceptor por el número total de llamadas.
-
IP: Configura el interceptor por llamadas por IP, permitiendo bloquear llamadas repetidas desde la misma IP.
-
-
Calls: Número total de llamadas aceptadas.
-
Interval: Determina el intervalo de tiempo en el que se aceptarán las llamadas, puede ser por segundo, minuto, hora, día, semana o mes.
El interceptor considera intervalos "completos". Por ejemplo, si configura un intervalo de un minuto y comienza a realizar requests a las 11:55:55, cuando cambie el minuto a las 11:56:00, se tendrá un nuevo conjunto de requests permitidos para ese recurso. Funciona de la misma manera para otros intervalos de tiempo. -
Soft Limit: Permite configurar un porcentaje adicional de llamadas permitidas, marcando la opción y añadiendo el valor en el campo % de la derecha (En el ejemplo de la imagen, hemos configurado un límite de 300 llamadas por minuto, con un 30% de exceso permitido. Es decir, se aceptarán hasta 90 convocatorias más).
Si la opción Soft Limit está marcada, el campo % es obligatorio. De lo contrario, Rate Limit funcionará normalmente con la cantidad de cuota configurada en el campo Calls -
Return quota header: Si se marca, se enviará un parámetro con el número de peticiones restantes con la cabecera de respuesta.
Al realizar un request, el header de la respuesta x-ratelimit-remaining muestra la cantidad de llamadas restantes, y el header x-ratelimit-reset muestra el tiempo restante para el próximo intervalo.
Share your suggestions with us!
Click here and then [+ Submit idea]