RateLimit
limite de peticiones en ciertos endpoints dentro de nuestra api de trabajo
Es una solución sencilla para controlar el número de peticiones realizadas a tu servidor desde una misma dirección IP a un endpoint específico. Este middleware establece límites basados en una ventana de tiempo configurable y aplica un periodo de enfriamiento (cooldown) cuando se excede el límite de peticiones permitidas.
Respuesta del Middleware
Cuando se excede el límite de peticiones o se intenta acceder durante el tiempo de enfriamiento, el middleware responde con un estado 429 Too Many Requests
y un cuerpo JSON con información relevante:
Headers de la Respuesta
X-RateLimit-Limit
Límite máximo de peticiones permitidas en la ventana de tiempo configurada.
X-RateLimit-Remaining
Número de peticiones restantes en la ventana de tiempo actual.
X-RateLimit-Reset
Marca de tiempo UNIX (en milisegundos) indicando cuándo se reiniciará el contador o finalizará el tiempo de enfriamiento.
Realizar Peticiones desde la Terminal
Puedes usar curl
para probar las peticiones a tu servidor:
Petición Exitosa
Respuesta esperada:
Exceder el Límite
Haz múltiples peticiones para exceder el límite configurado (maxRequests
):
Respuesta esperada tras exceder el límite:
Notas Adicionales
Ventana de Tiempo: El contador de peticiones se reinicia automáticamente después de la duración configurada en
windowMs
.Enfriamiento: Si un cliente excede el límite de peticiones, todas las solicitudes posteriores serán bloqueadas hasta que finalice el periodo de enfriamiento (
cooldownMs
).
Esta implementación asegura que los recursos del servidor estén protegidos frente a abusos o uso excesivo de cualquier cliente.
Última actualización