Introducción
Cuando estamos consumiendo una api creada con Laravel, puede que nos aparezca el error que dice “(429) Too Many Requests“. Aquí explicaré por qué pasa y qué solución tenemos para ello.
Básicamente esto aparece porque estamos haciendo muchas peticiones en un corto periodo de tiempo; por ejemplo, hacer 100 peticiones en menos de un minuto.
Es una forma que tiene Laravel para protegernos. Ya que de esta forma bloqueamos el acceso a un usuario malicioso que haga miles de peticiones para que nuestro servidor caiga. Si pasa el límite, sólo se le responderá con el código http 429.
Solución
No hay una verdadera solución para esto, porque en realidad no es un problema. Pero hay un pequeño truco para que ya no salga este error.
Si nosotros queremos permitir que se hagan más peticiones en el período de un minuto (arriesgándonos a un ataque) simplemente tenemos que modificar el archivo App/Http/Kernel.php e ir a la línea 41 (al menos en Laravel 5.4 y 5.5).
Ahí vemos que dice 60 y luego dice 1. El 60 representa el número de peticiones que se pueden hacer en 1 minuto. Y el 1, pues el período de tiempo medido en minutos, que en este caso es uno.
Por ejemplo, si yo quiero permitir 120 peticiones por minuto, haría esto:
Podemos poner cualquier número y cambiarlo a lo que deseemos, pero siempre debemos ser cuidadosos.
Para que los cambios surtan efecto simplemente tenemos que guardar el archivo y listo. No necesitamos reiniciar el servidor o cosas así.
Conclusión
Laravel es un poderoso framework que nos permite hacer cosas maravillosas con poco esfuerzo. Viene protegido por defecto, pero nos da la oportunidad de cambiar lo que deseemos. Esa es una gran ventaja, de poder cambiar todo a nuestra conveniencia y de acuerdo a nuestras necesidades.