Tech Assist

TECH & LIFE in NAGOYA

名古屋エリアでのフリーランスエンジニアとしての活動記録。

2018年11月21日

429 (Too Many Requests)への対処法

Laravel + jQueryな環境で開発していて稀にAjaxがエラーになるので原因調査してたらコンソールに429 (Too Many Requests)という見慣れないHTTPステータスを発見。
どうやら短時間にたくさんアクセスしすぎみたいですね。
https://developer.mozilla.org/ja/docs/Web/HTTP/Status/429

原因を調べていたらそれらしきものを発見。
すぐに試してみるとエラーは出なくなりました。
LaravelのThrottleRequestsという機能が効いてたというオチでした(^^;
まあAjaxでAPI呼んでる訳なんで、回数を制限する機能が効いてるってのにも納得です。というかLaravel気が利いてるなってむしろ感心したw

このThrottleRequestsという機能、同一IPからの1分間にアクセスできる回数を制限するというもの。
デフォルトだと60回なのでAjaxフル活用してるアプリ開発だと何度もリロードするのであっという間に制限回数を超えちゃいます。

App\Http\Kernel.php
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
    ],

    'api' => [
        'throttle:60,1',
    ],
];
throttle:60のところを600とかにすればOK。

Oracle SQL Developerを使いやすく設定する     XAMPPでoci8が認識できない時の解決法

関連記事