在 Laravel 中,可以通过 Route::middleware() 方法来给一个路由文件配置限流。Route::middleware() 方法接收一个或多个中间件作为参数,这些中间件可以用于实现各种功能,包括限流。
要给一个路由文件配置限流,可以使用 throttle() 中间件。throttle() 中间件接收两个参数:rate 和 decay。rate 参数指定了每秒允许的请求数,decay 参数指定了请求速率衰减的时间,单位为秒。
例如,以下代码将限制 routes.php 文件中所有路由每秒的请求数为 10:
Route::middleware('throttle:10,60')->group(function () {
// 所有路由都被限制每秒 10 次请求
Route::get('/', function () {
// 执行逻辑
});
Route::post('/', function () {
// 执行逻辑
});
});
如果请求数超过限制,将会返回一个 429 错误。