リソース · 33
クライアントを失うことなくAPI契約を進化させる
リクエスト、レスポンス、エラーを記述し、バージョンをテストし、Webhookを安全にリプレイできるようにしてください。
更新済み · 3 min
このガイドが達成するのに役立つこと
- 契約書を作成する
- エラーを明確にする
- 互換性をテストする
- 廃止計画を策定する
クイックチェック
- 各操作はどのクライアントが使用しているか?
- エラーは安定した型と一貫性のあるステータスを持つか?
- 既存のクライアントは変更に対応できるか?
- 再試行によってアクションが重複する可能性はあるか?
- 廃止はどのように告知され、検証されるか?
手順
- 1
利用者を一覧化する
操作、クライアント、使用状況、バージョン、所有者を一覧化する。 フィールドを変更する前に、実際の使用状況と想定を区別する。
成果物:契約依存関係マップ
- 2
リクエストとレスポンスを説明する
スキーマ、現実的な例、成功および失敗時のレスポンスを含むOpenAPI記述を維持する。 実行中のサービスと照合して確認する。
成果物:バージョン管理された契約と適合性テスト。
- 3
エラーを安定化する。
HTTPステータスをその意味に従って使用し、必要に応じてRFC 9457で文書化された問題タイプを使用する。機密情報を詳細に公開しない。
成果物:テスト済みのエラーカタログ。
- 4
変更を分類する。
必須フィールド、型、値、動作、タイムアウト、ページネーションを検査する。 代表的なケースを用いて、旧クライアントと新バージョンとのテストを実施する。
成果物:互換性マトリックスとバージョン決定。
- 5
通知を堅牢にする。
Webhookについては、認証、順不同配信、重複、再試行を計画する。 繰り返し処理が可能な場合は、処理を冪等にする。
成果物:リプレイと確認応答のシナリオ。
- 6
終了パス付きリリース
移行に関する注意事項、共存期間、連絡先を公開する。 旧バージョンの利用状況を測定し、影響を受けるユーザーを確認した後にのみ廃止する。
成果物:移行計画および廃止の証拠。
管理指標
| 指標 | 測定対象 | 最初のアクション |
|---|---|---|
| 契約 | 操作の説明とサービス動作の一致 | 不一致の修正 |
| 互換性 | 変更前に代表的なクライアントをテスト済み | 不足しているケースの追加 |
| エラー | 機密データを含まないタイプの文書化 | メッセージとスキーマの改訂 |
| 移行 | 所有者による旧バージョンの使用 | 残りのクライアントへのサポート |
よくある間違い
- バージョン番号のみで互換性が維持されると想定している
- 200件のレスポンスのみを文書化している
- エラー時に内部トレースまたはシークレットを返す
- Webhookが一度だけ順番に到着すると想定している
よくある質問
OpenAPIはテストに取って代わるのか?
いいえ。説明を実際のレスポンスとコンシューマーのニーズと比較してください。
すべての変更に新しいバージョンが必要か?
いいえ。クライアントへの影響と契約動作に基づいて判断してください。 互換性のない変更には明確な計画が必要です。
なぜタイプエラーが発生するのか?
入力エラーは、クライアントが問題を識別し、適切な対応を選択するための確実な方法を提供します。
公式参照文献
参照文献はメソッドを裏付けるものです。 チェックは状況に合わせて調整してください。 これらは認証ではありません。 元の参照文献のタイトルやソース文書は別の言語で書かれている場合があります。






