Laravel: разные ограничения скорости API для разных путей

Мне нужно установить разные ограничения скорости для разных путей.
Например:

По пути / пользователей Я хочу, чтобы ограничение скорости 60 запросов в минуту, а для пути / статистика Я хочу, чтобы ограничение скорости было всего 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 устанавливается равным 60, но при достижении 6-го запроса он выдает ошибку «Too many questions».

6

Решение

Вы можете попробовать закомментировать ставку по умолчанию на линия 40 Kernel.php так как вы указываете его в каждой группе промежуточного программного обеспечения, чтобы избежать конфликта.

Вы также можете изменить промежуточное программное обеспечение, включив в него второй параметр того, как долго длится период ожидания до поступления следующего запроса (например, throttle:60,1)

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]