Rate Limiting en Laravel 8

Fecha de publicación: septiembre 12, 2020

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on google
Google+
Share on whatsapp
WhatsApp
Share on email
Email

Otra de las novedades de Laravel 8 es la posibilidad de crear nuestros propios limitadores de tasas al momento de permitir el consumo de nuestra aplicación. En este caso esta posibilidad nos la ofrece la nueva fachada Illuminate\Support\Facades\RateLimiter a través de su método for.

Para ver cómo funciona esta nueva funcionalidad simplemente debemos abrir el provider RouteServiceProvider y ver su contenido, el cual será similar al siguiente código.

Puedes ver que ahora el método boot está llamando al método configureRateLimiting el cual simplemente utiliza la fachada RateLimiter para generar un throttle llamado api y que limita el número de peticiones a 60 por minuto para cualquier usuario. Para utilizar este throttle simplemente podemos hacer lo siguiente en nuestro archivo routes/api.php por ejemplo.

Si ahora hacemos más de 60 peticiones en 1 minuto veremos que aparece un 429 con el mensaje 429 Too Many Requests.

Limitar tasas con excepciones

A veces necesitaremos aplicar una tasa a un usuario y otra a otro usuario, es decir, si tenemos usuarios con ciertos privilegios por su tipo de cuenta o similar desearemos hacer algo para que se puedan beneficiar de su estatus. Eso lo podemos hacer de una forma muy sencilla.

En esta ocasión simplemente hemos creado un nuevo throttle llamado uploads al igual que hacíamos con el throttle api, es decir, podemos tener tantas tasas de limitación como necesitemos en nuestros proyectos.

Si deseas seguir conociendo más sobre Rate Limiting en Laravel 8 no te pierdas la documentación de Laravel.

¿Quieres acceder a más de 100 cursos de PHP y JavaScript?

Vuejs, Laravel, NodeJS, WordPress, Serverless, React Native, Amazon Web Services y mucho más

Quiero hacerme Premium
Cursosdesarrolloweb ©. Todos los derechos reservados.

Login