El Rate Limiting es una técnica de seguridad que controla el número de solicitudes (frecuencia) que un cliente puede hacer a una API o servicio en un período de tiempo determinado. Por ejemplo, se puede limitar a 100 requests por minuto por usuario para prevenir sobrecarga del servidor y garantizar un servicio equitativo para todos los usuarios. La limitación es a nivel de aplicación (o servicio a usar) y no a nivel de servidor. Es un escenario de seguridad.

Componentes

  1. Cantidad máxima de peticiones.
  2. Periodo de tiempo en que se aplican las peticiones.
  3. A quién le aplico la restricción

Casos de Uso del Rate Limiting

RS 429 many requests

HTTP 429 es un código de estado de respuesta que indica que el cliente ha excedido el número permitido de solicitudes en un período de tiempo determinado, también conocido como "Too Many Requests" (Demasiadas solicitudes). Este código es comúnmente utilizado en implementaciones de Rate Limiting.

Biblioteca SlowAPI

  1. Primero instalar SlowApi pip install slowapi
  2. En el archivo raíz (main o request handler) agregamos las configuraciones de SlowApi. Esto es a nivel de endpoints base.