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

rate limit

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.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]