Saltar al contenido

El Rate Limiting es una característica fundamental en Laravel que nos permite controlar la cantidad de solicitudes que un usuario puede realizar a nuestras rutas en un período determinado. Esta funcionalidad es esencial para:

  • Proteger nuestras APIs de abusos

  • Gestionar el consumo de recursos

  • Implementar niveles de servicio (por ejemplo, para usuarios gratuitos vs premium)

  • Prevenir ataques de fuerza bruta

Definiendo Rate Limiters

Laravel nos permite definir nuestros limitadores de tasa en el método boot de nuestro App\Providers\AppServiceProvider. La sintaxis es clara y expresiva:

En este ejemplo, estamos definiendo un limitador llamado 'api' que permite 60 solicitudes por minuto por usuario (o dirección IP para usuarios no autenticados).

Personalización del Rate Limiting

Una de las características más potentes del Rate Limiting en Laravel es su flexibilidad. Podemos:

1. Definir Respuestas Personalizadas

2. Implementar Límites Dinámicos

3. Segmentar Límites

Múltiples Rate Limits

Podemos definir múltiples límites para una misma configuración:

Es importante notar que cuando usamos múltiples límites con segmentación, debemos asegurarnos de que cada valor by sea único:

Aplicando Rate Limiters a las Rutas

Para aplicar estos limitadores a nuestras rutas, utilizamos el middleware throttle:

Usando Redis para Rate Limiting

Si estamos utilizando Redis como driver de caché, podemos configurar Laravel para que use Redis en la gestión del Rate Limiting. Esto se configura en el archivo bootstrap/app.php:

Conclusión

El sistema de Rate Limiting de Laravel nos proporciona una manera robusta y flexible de controlar el tráfico en nuestras aplicaciones. Sus características principales incluyen:

  • Definición clara y expresiva de límites

  • Flexibilidad para personalizar respuestas

  • Soporte para límites dinámicos basados en el usuario

  • Capacidad para implementar múltiples límites

  • Integración con Redis para mejor rendimiento

school Curso completo

Curso Laravel 12
Completo 2026

El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.

access_time 8 horas de contenido
layers 4 tecnologías en 1
update 100% actualizado
code Proyectos prácticos
Ver Curso Laravel 12 arrow_forward

star Incluido en cualquier suscripción

Rutas de aprendizaje