I'm writing a lot of API to get and store data.
I like the default throttle option:
protected $middlewareGroups = [
'api' => [
'throttle:60,1',
'bindings',
],
];
to limit the request to 60 per minute; but for some route (es: POST), I'd like to increase this value.
I tried to set 'throttle:500,1' on route Middleware like below:
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']);
});
but it does not work.
Any idea?
Thank you.
UPDATE:
I noticed that the 'throttle:500,1' used in the api.php route will be set AFTER the default 'throttle:60,1' specified into Kernel.php file; then, It doesn't work.
Logging the process execution, the first call is:
Illuminate\Routing\Middleware\ThrottleRequests -> handle
from Kernel.php has maxAttempts=60.
Then, the second call is:
Illuminate\Routing\Middleware\ThrottleRequests -> handle
from api.php has maxAttempts=500.
In others words, the throttle:500,1 in the api.php file do not override the throttle:60,1 in the Kernel.php file.