我有api密钥并向其他服务发送请求,我想限制请求的数量。我是否可以在laravel中限制特定路由上的请求数量,但限制所有用户,尽管他们的ip?
使用laravel油门中间件
对于laravel 5,6,7使用this
Route::post('api/api-key','ApiController@getKey')->middleware('throttle:60,1');
for Laravel 8
Route::post('api/api-key',[ApiController::class,'getKey'])->middleware('throttle:60,1');
有关api-key的更多限制,请阅读本文
经过几个小时的搜索,我在laravel文档中找到了答案。
你可以像这样限制每条路由的请求数
RateLimiter::for('uploads', function (Request $request) {
return Limit::perMinute(1000)->response(function () {
return response('Custom response...', 429);
});
});
Route::middleware(['throttle:uploads'])->group(function () {
Route::post('/audio', function () {
});
}