経緯 APIを設計する時に「利用制限をどうすべきか」という議論が起きると思います。 とりあえず有名なAPIを調べて、傾向やビッグウェーブなどあればと思い調べました。 以下、各サービスのAPIドキュメントは2018年7月時点くらいに調べたものとなります。 結論(まとめ) 十人十色でした!! 言い換えると、共通のベストプラクティスという物は無さそうで 以下の2つの軸を元にサービスに応じてカスタマイズしていく形かなと考えます。 制限をかける粒度を選択 / 組み合わせる ・サービス(大きな機能)単位で制限 ・機能に応じて何種類かの区分を作り制限 ・APIエンドポイント単位で制限 ・重要度に分けて制限 ・認証の種類で制限 実行制限の枠(rate limit window)を決める 制限を掛ける=リセットされるまでの、時間。 また、上記以外にもセットで現在の利用制限状況の表現方法を決める必要がありそう
![WebAPIを設計するうえでの利用制限(Rate Limit)について調べた - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/af7dad4ab24c09708295a022b570fbd74a4ba381/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9V2ViQVBJJUUzJTgyJTkyJUU4JUE4JUFEJUU4JUE4JTg4JUUzJTgxJTk5JUUzJTgyJThCJUUzJTgxJTg2JUUzJTgxJTg4JUUzJTgxJUE3JUUzJTgxJUFFJUU1JTg4JUE5JUU3JTk0JUE4JUU1JTg4JUI2JUU5JTk5JTkwJTI4UmF0ZSUyMExpbWl0JTI5JUUzJTgxJUFCJUUzJTgxJUE0JUUzJTgxJTg0JUUzJTgxJUE2JUU4JUFBJUJGJUUzJTgxJUI5JUUzJTgxJTlGJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0yYzExODRlNDFhZmQ4YTU3MzIwZjIyNWZhZDdiM2JkZg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQweXVqaV9zYWl0byZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9N2M0Y2Y4NDZkZDAyM2Y5Yzk1NzkyMzIwNGIwN2Q1OTI%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D37f276e20fa4ba81bb5f30950a914bfd)