私は、新しい WCF サービス スイートのバージョン管理戦略を策定する任務を負っています。私が読んだ多くの記事では、中間ルーティング サービスを使用して、通話を適切なサービス バージョンに転送することを推奨しています。これがどのように機能するかは理解していますが、クライアントを重大な変更から保護するという点で、これがどれほどの利益をもたらすか疑問に思っています.
たとえば、エンドポイントが異なる 2 つのバージョンのサービスがあるとします。
mycompany.com/API/v1.0/GetCustomer
mycompany.com/API/v2.0/GetCustomer
ルーティング サービス ソリューションは、SOAP メッセージ内のカスタム 'version' ヘッダーを探し、呼び出しを適切なサービスにルーティングします。バージョン ヘッダーが見つからない場合は、最新バージョンを使用できます。
または、両方のエンドポイントを公開するだけで、消費者は必要なバージョンを呼び出すことができます。
あるソリューションが他のソリューションより優れている点は何ですか? ルーティング サービスを追加すると、追加のレベルの構成が追加されるようです。どちらのソリューションも、アップグレードを希望する場合、消費者がコードを変更する必要があります...
これについては別の投稿で質問する方がよいかもしれませんが、サービスの複数のバージョンを維持するということは、ソース コードでコントラクトの同時バージョンが必要になることを意味します。これを管理するための推奨される方法はありますか (名前空間など)?
ありがとう