VI. Backwards compatible APIs
すべてのユーザーが最新バージョンにアップデートすることを前提としない
GitHub で編集する大部分のエンドユーザーは数週間以内に最新のアップデートに更新されますが、そうしないユーザーのサブセットが常に存在します。 これには複数の理由があります。 多くの場合、実行している iOS バージョンに関連していて、指定した iOS デバイスに依存して更新できないことがあります。
第1世代の iPad (2010) 上で Facebook Messenger をインストールして使うことができます。新しい機能はサポートされませんが API バージョニングのおかげでコア機能は引き続き利用できます。
基本的なコンセプトは既存の API を更新するのではなく代わりに新しい API を追加して、並行して実行させることです。
https://your-api.com/1.0/drivers.json
https://your-api.com/1.1/drivers.json
最終的には、API のセマンティクスを無効にするか、わずかに変更する必要があります。 たとえあなたの会社が安定性に深いコミットメントを持っていても、法律の問題がこの変更を強制することがあります。 つまり、API ステータスを示すために照会できる API エンドポイントをエンコードする必要があります。
https://your-api.com/1.0/status.json
https://your-api.com/1.1/status.json
ステータス API には次のような情報を含めるべきです。
- API のステージは何か?(例: テスト、ベータ、プロダクション)
- API は非推奨か?もしそうならいつそうなるか?
- API はオフラインか?そのままなのか、一時的な停止か?