Web API を作成しており、それをバージョン管理できるようにしたいと考えています。私がやりたい方法はこれです:
- クライアント アプリケーションは、呼び出し対象の API のバージョンを含む各要求と共に、カスタム HTTP ヘッダーを渡します。
IVersionRetriever
リクエストからバージョン番号を取得するためのコンポーネント(または何かと呼ばれる)が存在します。Castle Windsor は、 のインスタンスを提供する責任がありますIVersionRetriever
。- サービス インターフェイスの実装をバージョン間で変更したい場合、Castle Windsor は
IVersionRetriever.ApiVersion
、取得した値に応じて実装をチェックして返すように構成されています。
これはすべて簡単に思えますが、Windsor の登録 API からは、Windsor に「そうですね、が 1 のIFoo
場合はが必要ですが、バージョンが 2 の場合は が必要ですIVersionRetriever.ApiVersion
SuperFoo
SuperDuperFoo
これをどのように構成しますか?
関連する場合、すべてのコンポーネントには PerWebRequest ライフスタイルがあります。