Chapter 03

レート制限・エラー・ヘッダー

nukokoi
nukokoi
2022.10.08に更新

レート制限

概要

レート制限は、すべてのサードパーティ アプリケーションとサービスに適用されます。
このドキュメントは、レート制限自体の概要と、それらがどのように適用されるか、
およびレート制限に達したときに返されるエラーを処理するためのベストプラクティスです。

サードパーティ アプリケーションは現在、
1 時間あたり 5000 リクエストに制限されています。
この API は古くなり続けるため、
ユーザーにより良いパフォーマンスを提供するためにレート制限が更新される場合があります。

根拠

前述のように、主な目標は、開発者とユーザーが MTG データにアクセスするときに
使用できるレスポンシブ インターフェイスを提供することです。
API へのリクエストごとに計算コストが発生するため、
Magic: The Gathering API とその開発者パートナーの両方にとって、
これらのコストを可能な限り最小限に抑えることが最善です。

レート制限は、API リクエストを経済的に利用するために統合を構築することを
サードパーティの開発者に奨励することで、サードパーティの開発者にも役立ちます。

エラー

コード 名前 説明
400 要求の形式が正しくありません そのアクションを処理できませんでした
403 禁止 レート制限を超えました
404 見つかりません 要求されたリソースが見つかりませんでした
500 内部サーバーエラー サーバーに問題がありました。後でもう一度やり直してください
503 サービスは利用不可 メンテナンスのため一時的にオフラインにしています。後でもう一度やり直してください

エラー応答

{
  "status": 404,
  "error": "error message here"
}

ヘッダー

リクエストを行う際に使用できるカスタムレスポンスヘッダーが多数あります。
一部のヘッダーは、レスポンス結果がページ分割された場合にのみ表示されます。(Total-countが101以上の場合など)

  1. Link: 前、最後、次、最初のリンクを持つリンク ヘッダー (適切な場合)
  2. Page-Size: リクエストのページ サイズ
  3. Count: 返された要素の数
  4. Total-Count: 要素の総数 (全ページにわたる)
  5. Ratelimit-Limit: 特定のユーザーのレート制限
  6. Ratelimit-Remaining: レート制限を超える前に残されたリクエストの数。
ヘッダー例
HTTP/1.1 200 Ok
Link: <http://api.magicthegathering.io/v1/cards?page=311>; 
rel="last", <http://api.magicthegathering.io/v1/cards?page=2>;
rel="next"
Page-Size: 100
Count: 100
Total-Count: 31090
Ratelimit-Limit: 5000
Ratelimit-Remaining: 4999