Laravel: 不同路径的不同 api 速率限制

Laravel: different api rate limits for different paths

我需要为不同的路径设置不同的速率限制。 敌人例子:

在路径 /users 上,我希望将速率限制为每分钟 60 个请求,而对于路径 /stats 我希望速率限制为每分钟仅 5 个请求。

我尝试了下一种方法

Route::group(['middleware' => ['auth', 'throttle:60']], function(){
   Route::get('users', 'User@list');
});
Route::group(['middleware' => ['auth', 'throttle:5']], function(){
   Route::get('stats', 'User@stats');
});

不知何故,应用了最后的速率限制。但是,当在用户路径上发出请求时,X-Rate-Limit-Limit header 设置为 60,但是当它到达第 6 个请求时抛出 "Too many requests" 错误。

您可能想尝试注释掉 line 40 of the Kernel.php 上的默认速率,因为您在每个中间件组中指定它以避免冲突。

您可能还想更改中间件以包含第二个参数,即在下一个请求到来之前等待的时间。(例如 throttle:60,1