Ограничение скорости в laravel 8 не работает для маршрутов с методом post

#laravel #post #ratelimit

Вопрос:

Пожалуйста, проверьте следующий код для ограничения скорости

 RateLimiter::for('api', function (Request $request) {
    return [
        // Rate limiter based on Client IP Address
        Limit::perMinute(env('IP_ADDR_RATE_LIMITER_PER_MINUTE', 60))->by($request->ip())->response(function () {
            ....
        }),
        // Rate limiter based on API key/User
        Limit::perMinute(env('API_KEY_RATE_LIMITER_PER_MINUTE', 60))->by($request->input('key'))->response(function () {
            ...
        })
    ];
});
 

Конфигурация маршрута в api.php

 Route::post('/temporalrisk/v1', [TemporalRouteRiskV1::class, 'postMethod'])->middleware('key')->name('temporalrouteriskv1.index');
 

Может ли кто-нибудь помочь мне решить вышеуказанную проблему, чтобы установить ограничение скорости для маршрутов методом post?

Комментарии:

1. вы должны написать код [ ответ на возврат («Пользовательский ответ…», 429); ] в функциях

Ответ №1:

Это может вам помочь:

 RateLimiter::for('global', function (Request $request) {
    return Limit::perMinute(1000)->response(function () {
        return response('Custom response...', 429);
    });
});
 

Для получения дополнительной информации об ограничении скорости :

https://laravel.com/docs/8.x/routing#rate-limiting