以下の内容はhttps://miriwo.hatenablog.com/entry/2020/06/21/214823より取得しました。
目的
- とあるサービスにAPI経由でリクエストを送りすぎて一時的にアクセス制限かかかってしまった話をまとめ、二度としないように戒める
やってしまったこと
- とあるサービスのAPIに対してLaravelアプリからデータの取得をするためにリクエストを送った。
- while分を使用してリクエストで受け取ったJSONデータが空になるまでリクエストを繰り返し送り、得られたJSONデータが空の場合、処理を終了するコードを書いた。
- 実行したところ、レスポンスとして帰ってきたJSONが想定が異なり永遠にwhileのループ処理が実行されてしまった。
何が起こったか
- APIアクセスが拒否されるようになった。
- ブラウザから当該サービスにブラウザからアクセスした所403エラーが発生し一時的にサービスが使用できなくなった。
その後どうなったか
- 次の日にはブラウザから正常にアクセスできるようになった。
- APIへのリクエストも正常にレスポンスが得られるようになった。
どうすべきだったのか
- JSONのデータがどのようにレスポンスとして帰ってくるのか細部まで確認するべきだった。
- orなどを用いて多重リクエストを送らないように処理をすべきだった。
- そもそも取得したデータを用いてループ処理の可否を決める事は良くない。
以上の内容はhttps://miriwo.hatenablog.com/entry/2020/06/21/214823より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14