現象
Laravel8でAPIを作り、Front側で大量のデータ取得Or更新をしようとすると、最初の何十件までは順調で進むが、その後Javascript Consoleにて429 (Too Many Requests)エラーが発生していまいます。
背景
Laravel8ではデフォルトでアクセス件数の制限が走って、1分間に60件を超えるとエラーを起こしてしまします。
オフィシャル参考資料: https://laravel.com/docs/8.x/routing#rate-limiting
対応方法
原因がわかると対応方法は簡単。
ファイル: /app/Providers/RouteServiceProvider.php
修正箇所:
/**
* Configure the rate limiters for the application.
*
* @return void
*/
protected function configureRateLimiting()
{
RateLimiter::for('api', function (Request $request) {
//return Limit::perMinute(60)->by(optional($request->user())->id ?: $request->ip()); //元の内容
return Limit::perMinute(10000)->by(optional($request->user())->id ?: $request->ip()); //修正した内容
});
}
以上。