私はSOAP Webサービス(ASP.NETバージョン2.0)を維持しており、特定のメソッドの戻り値を変更するいくつかの変更を加えなければなりません。ASP.NET 2.0 Webサービスをバージョンアップする最も良い方法は何ですか?
既存の実装を破ることなくこれを行う一般的に認められている方法は何ですか?
私の最初の考えは、以下のすべてが可能であるということです。
a)既存のWebサービス内に新しいバージョン固有のメソッドを提供します。 getPerson_v1.4
b).asmxファイルの完全なコピーに新しいバージョン番号を指定します。 http:/www.example.com/AdminWS_V1_4.asmx。これは、サービスが50以上のメソッドを持ち、2/3メソッドへの変更のためのコードをコピーするとコードが重複しているように思えるので、私が気に入っているアイディアではありません。
c)Webサービスコンストラクタをオーバーライドして、バージョン番号を渡すことができます。これはうまくいかないようですが、リフレクションではWSDL内でどのように表現されるかわかりません。
一般的に受け入れられている方法がありますか、この分野の経験に基づいてアドバイスを受けていますか?
これは良い方法だと思うし、多くの組織がこの方法を使用しています。これは、ユーザーが異なるバージョンのサービスにアクセスしていることを明確に示しています。 – BobbyShaftoe
私はそれを合理的なオプションのように思えますが、Webサービスは他のコードを使用していますが、私たちの既存のユーザーはすべて「メイン」サイトを参照しています(つまり、バージョンなし) –
@Steve Weetは、この例を続け、directoy alaを作成することで解決できないだろうか:http://www.example.com/soap/current/ - これは最新のバージョンにマップするだけだろうか?メソッドにバージョン番号を付けると、すべての履歴に興味のない新しいユーザーのためにAPIが複雑になります。 – Thies