エラーの概要
ajaxの非同期通信等で、短時間に大量リクエストを発生させた場合に「429 Too Many Requests」エラーが発生してしまう。
対処方法
RouteServiceProvider.phpで制限を緩和することができます。
app/Providers/RouteServiceProvider.phpのboot関数のRateLimiterで60と定義している部分があります(デフォルトが60に設定されている)。
これにより1分間に60回のリクエスト制限がかかっているので60⇒1000等に変更する。なお、無制限にするにはRateLimiter::forのブロック自体をコメント化すればよい。
/**
* Define your route model bindings, pattern filters, and other route configuration.
*/
public function boot(): void
{
RateLimiter::for('api', function (Request $request) {
return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
});
$this->routes(function () {
Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));
});
}