
Según Wikipedia, en las redes informáticas, la limitación de velocidad se usa para controlar la tasa de solicitudes enviadas o recibidas por un controlador de interfaz de red y se usa para prevenir ataques DoS. En este artículo, vamos a establecer límites de velocidad en las rutas de Laravel.
Podemos hacerlo usando throttle
middleware de Laravel . Empecemos:
Ejemplo básico
Configuremos throttle
middleware en una ruta:
Route::get('/user', function () {
//
})->middleware('auth', 'throttle:20,1');
Una ruta de acceso de usuario autenticado 20 veces por minuto. Después de cruzar el límite la ruta regresará 429 Too Many Requests
.
Aplicar en grupo de ruta
Podemos establecer fácilmente un límite de velocidad en un grupo de rutas:
Route::middleware('auth:api', 'throttle:20,1')->group(function () {
Route::get('/user', function () {
//
});
});
Límite de frecuencia dinámica
Podemos establecer una variable de límite de tasa dinámica en lugar de un número codificado de solicitudes máximas:
Route::middleware('auth:api', 'throttle:rate_limit,1')->group(function () {
Route::get('/user', function () {
//
});
});
El rate_limit
es un atributo de un User
modelo.