APIのレート制限とリトライ
APIのレート制限とリトライは、クライアントとAPIの間の契約の一部です。クライアントは、成功、バリデーションエラー、認証の失敗、レート制限、一時的なサーバーエラーを区別して扱う必要があります。JSONかXMLかでHTTPのセマンティクスが変わることはありません。また、IPv4/IPv6の値は、IPv4の長さを前提にせず、そのまま保持しなければなりません。
応答の扱い方
Content-Type、ステータスコード、ドキュメントに記載されたフィールド、クォータを検証します。HTTP 429は別に扱い、Retry-Afterが返された場合はそれに従い、上限付きの指数バックオフにジッターを組み合わせてください。リトライの前には冪等性も考慮します。リクエストID、ステータス、レイテンシはログに残しますが、APIのシークレットは決して記録しないでください。
429が返ってきたら
APIが429を返したら、決まった時間だけ機械的に待つのではなく、Retry-Afterがあればその値を読み取ります。リトライ回数には上限を設け、指数バックオフにジッターを加えてください。重複した副作用を生むおそれのある操作は、自動で再実行しないようにしましょう。実際のリクエストと最新のAPI仕様は、2IPのAPIで確認できます。