Configuración de límites en métodos (rate limit)

Configuración de límites en métodos (rate limit)

Resúmen: 


Los límites permiten definir la cantidad de consultas y transferencias máximas en MB que aceptará el gateway por unidades de tiempo. En este artículo se explica la configuración de límites a nível de los métodos de una API.


Estos límites permiten evitar usos incorrectos que degraden el servicio y su definición dependerá del tipo de API, del perfil de usuarios desarrolladores y del problema que se busca resolver.


Además, podrá definir los tiempos de espera (timeout) y el tiempo que la respuesta permanecerá en caché. La configuración de caché es relevante para mejorar la performance de la respuesta y su definición dependerá de la frecuencia de actualización de los datos.


Cuando se superen los límites establecidos la API responderá con un mensaje indicando que se han superado los límites y el tiempo de espera o cuarentena. Esto se conoce como request throttling limits.



¿Qué es la regulación de solicitudes o límites de una API? 


La regulación de límites de solicitudes a las APIs (también conocida como API Rate Limiting) es una práctica en la gestión de APIs que controla la cantidad de solicitudes que un cliente (usuario o aplicación) puede realizar en un periodo determinado. Esta regulación es fundamental para garantizar la disponibilidad, seguridad y desempeño de las APIs.


La regulación de límites permite;


  • Evitar la sobrecarga de los servidores: al limitar el número de solicitudes, se previene que un solo cliente o aplicación sobrecargue el servidor con un exceso de solicitudes, lo que podría afectar la capacidad de los orígenes de datos para atender otras solicitudes de manera eficiente.

  • Protegerse contra ataques: es una medida de seguridad que protege contra ciertos tipos de ataques, como los ataques de denegación de servicio (DDoS), donde un atacante podría intentar saturar la API enviando una gran cantidad de solicitudes en un corto periodo.

  • Controlar costos: para APIs que estén monetizadas bajo el modelo de transacción, limitar las consultas ayuda a controlar los costos asociados con el uso de la API y evitar que el cliente supere los límites definidos. Si la API se encuentra monetizada bajo el modelo de suscripción, permite definir las cantidades de solicitudes para cada plan.



¿Cuáles son las variables que pueden configurarse en los límites?


Al configurar límites de las APIs puede definir:

  • Cantidad de solicitudes por unidad de tiempo.

  • Cantidad de megabytes a transferir en las consultas por unidad de tiempo.

  • Duración de caché de la respuesta.

  • Tiempo máximo de la respuesta (o timeout).


¿Qué sucede cuando se aplica un límite sobre un usuario o aplicación?


En caso de que un usuario agote sus cuotas para esos rangos de tiempo, deberá esperar a que se cumpla dicho período para poder volver a realizar nuevas consultas. 


Por ejemplo, si un usuario supera la cantidad de solicitudes por minuto, deberá esperar un minuto para poder realizar la consulta nuevamente.



Niveles de configuración


La configuración de los límites se puede realizar en cuatro niveles: 


  • Límites a nivel de API para todos los usuarios.

  • Límites a nivel de método para todos los usuarios.

  • Límites a nivel de grupo para los usuarios pertenecientes a un grupo.

  • Límites a nivel usuario de forma individual.


A partir de esos cuatro niveles pueden darse las siguientes combinaciones:


  1. Que sólo se apliquen los límites configurados a nivel de la API
  2. Que los métodos creados tengan distintos límites respecto de la API
  3. Que los métodos solo tengan límites configurados a nivel grupal
  4. Que los métodos solo tengan límites configurados a nivel individual
  5. Que para el método se configuren límites a nivel grupal armando grupos de grupos
  6. Que una API tenga una cantidad de límites en general, que los métodos tengan limites de consulta en particular y que al interior de los métodos existan límites para grupos de usuario en particular
  7. Que una API tenga configuración de límites a nivel general, que sus métodos tengan límites particulares, que se configuren límites específicos en los métodos para los distintos grupos de usuario y que a la misma vez haya límites configurados a nivel individual para uno o varios usuarios en particular.


Configurar límites


Introducción


Al agregar o editar un método es posible configurar los límites para ese método. 


Para ello, debe hacer clic en el botón “Sobreescribir” del título “Limites”, tal y cómo se indica en la siguiente imágen:


Se abrirá una ventana donde es posible agregar conjuntos de límites haciendo clic en “Nuevo Límite”



Se abrirá un formulario que permite agregar un nombre y una descripción para el conjunto de límites y definir a quiénes aplicará:

  1. Para todos los usuarios
  2. Para Grupos o usuarios específicos.


Para todos los usuarios


Para configurar un conjunto de límites para todos los usuarios debe seleccionarse Todos y modificar los valores por defecto de cada límite y unidad de tiempo según sus definiciones.


Una vez creado el límite podrá editarlo haciendo clic en el lápiz bajo el campo de “Acciones”, podrá “Agregar” un nuevo límite o bien dar por finalizada la configuración apretando el botón “Listo”.  



Al hacer clic en Listo, volverá a la sección de configuración del método donde podrá seguir editando su método o bien hacer clic en Listo y luego Publicar de modo tal que la versión de la API quede publicada con las nuevas configuraciones.



Para grupos y/o usuarios

Para configurar un conjunto de límites para grupos de usuarios o usuarios específicos debe seleccionarse Grupos/usuarios. Se mostrará un selector de Grupos y Usuarios que permitirá agregarlos al conjunto de límites que está creando. Además deberán ser modificados los valores por defecto de cada límite y unidad de tiempo según sus definiciones.




Una vez creado el límite podrá editarlo haciendo clic en el lápiz bajo el campo de “Acciones”, podrá “Agregar” un nuevo límite o bien dar por finalizada la configuración apretando el botón “Listo”.  



Al hacer clic en Listo, volverá a la sección de configuración del método donde podrá seguir editando su método o bien hacer clic en Listo y luego Publicar de modo tal que la versión de la API quede publicada con las nuevas configuraciones.



Consideraciones sobre la jerarquía de los conjuntos de límites

Dadas las configuraciones posibles que pueden realizarse debe tenerse en cuenta la siguiente jerarquía en la aplicación de los límites.


Nível

Descripción

Jerarquía

API

Límite aplicado a todos los usuarios de la API.

Es el de menor jerarquía. Si existe alguna de las configuraciones siguientes no aplica esta configuración.

Método para todos

Límite específico para todos los usuarios en un método particular.

Tiene mejor jerarquía que los siguientes.

Método por grupos

Límite aplicado a todos los usuarios que pertenecen a un grupo.

Tiene menor jerarquía que a nivel individual.

Método por usuario

Límite específico para un usuario.

Es el de mayor jerarquía en caso que esté definido.


  1. Si se establece un límite a nivel de usuario individual, este tendrá prioridad sobre cualquier límite definido a nivel de grupo.
  2. Si un usuario está en dos grupos que tienen diferentes conjuntos de límites en un método aplicará el límite del primer grupo configurado. 

Esta jerarquía asegura que los límites pueden ser ajustados según las necesidades específicas de cada usuario o grupo de usuarios.



    • Related Articles

    • Configuración general de la cuenta

      Resumen Puedes configurar información general de la cuenta en la sección Configuraciones. Información de la cuenta En esta sección puedes configurar información contextual para el equipo de Vor-Tex: El nombre de la organización. La dirección del ...
    • Orígenes de datos desde Bases de datos

      Resumen El conector a Bases de datos ofrece todas las capacidades necesarias para conectarse a este tipo de orígenes. Esta opción permite recolectar datos desde diferentes tipos de bases de datos o configurar acciones de escritura, para luego crear ...
    • Qué es una vista de datos

      Resumen La plataforma no requiere de un proceso ETL off-line para extraer los datos desde los orígenes, sino que asociadas a la vista se encuentran un conjunto de reglas que el motor de datos interpreta para consultar la fuente a demanda o ...
    • Orígenes de datos desde servicios web REST/json

      Resumen El conector a servicios web REST/JSON ofrece todas las capacidades necesarias para conectarse a este tipo de orígenes. Esta opción permite recolectar datos desde servicios web REST/JSON o configurar acciones de escritura, para luego crear ...
    • Crear métodos de APIs

      Resumen En el articulo Crear y gestionar versiones de APIs se mostraron los primeros pasos necearios para crear APIs. Los métodos definen la acción que se realizará sobre un determinado recurso. Como primer paso debe seleccionar la opción de Agregar ...