Я пишу много API для получения и хранения данных.
Мне нравится вариант по умолчанию throttle
:
protected $middlewareGroups = [
'api' => [
'throttle:60,1',
'bindings',
],
];
ограничить запрос до 60 в минуту; но для некоторого маршрута (es: POST
) я хотел бы увеличить это значение.
Я попытался установить 'throttle:500,1'
в промежуточном программном обеспечении маршрута, как показано ниже:
Route::group(function () {
Route::get('semaphore/1', ['uses' => 'App\Api\V1\DBs\SemaphoreController@index']);
Route::post('semaphore/1', ['uses' => 'App\Api\V1\DBs\SemaphoreController@store', 'middleware' => 'WriteToDatabaseMiddleware', 'throttle:500,1']);
});
Но это не работает.
Есть идеи?
Спасибо.
ОБНОВЛЕНИЕ:
я заметил, что 'throttle:500,1'
, используемый в маршруте api.php
, будет установлен ПОСЛЕ значения по умолчанию 'throttle:60,1'
, указанного в файле Kernel.php
; то это не работает.
Регистрируя выполнение процесса, первый вызов:
Illuminate\Routing\Middleware\ThrottleRequests -> handle
от Kernel.php
есть maxAttempts=60
.
Затем второй вызов:
Illuminate\Routing\Middleware\ThrottleRequests -> handle
от api.php
есть maxAttempts=500
.
Другими словами, throttle:500,1
в файле api.php
не переопределяет throttle:60,1
в файле Kernel.php
.