1

Webサービスのバージョン管理についてこの質問を読みました。

更新またはバージョン管理のための戦略-Webサービス

そして今、私は新しいバージョンを実装する方法を尋ねたいと思います。

今すぐURLに:myUrls/../v1Webサービスを受け入れます。今、私は新しいバージョンを作成したいと思います: myUrls/../v2。古いWebサービスを保持し、新しいWebサービスを新しいバージョンに追加したいだけです。これはどのようにすればよいですか?新しいエンドポイントを作成する必要があります。そうでない場合は、現在のエンドポイントを使用して何かを変更することができます。

ヘルプのためのthx

アップデート:

私はspring-wsとSOAPを使用しています

4

2 に答える 2

1

変更の性質によって異なります。REST 呼び出しに追加のメソッドを追加するだけの場合、理論的には、現在のサービスに追加するだけで、他のすべてのメソッドは引き続き機能します。

SOAP などのコントラクト優先の展開を使用している場合は、WSDL を更新する必要があるため、バージョンを管理する必要があります。

それは本当に依存します-あなたのサービスに現在のバージョンの消費者向けの下位互換性を持たせたいですか? 変更を加えるたびにコンシューマーにコードのリファクタリングを強制することに満足しているなら、そうです。毎回同じ URL エンドポイントを更新するだけです。

于 2012-11-28T09:34:45.057 に答える
0

これは、Webサービスをどのようにデプロイしているかによって異なります。

個人的には、変更に下位互換性がある場合(@ david99worldが指摘しているように)、既存のサービスに新しい操作を追加するだけです。

変更に互換性がない場合(つまり、既存の操作のインターフェイスが変更されている場合)、新しいサービスを新しいEAR/WARとしてパッケージ化します。そうすれば、両方のサービスを同時に実行できるため、すべてのサービスコンシューマーが、コードを同時に変更/テスト/デプロイする必要はありません。2つの別々のバージョンを使用することで、両方のサービスが機能する移行期間を設定できます(ただし、これは、たとえば、基になるデータベースの変更によってv1同時に機能しなくなるかどうかによって異なりますv2)。

また、変更が失敗した場合は、v2影響を与えることなくWAR / EARをアンデプロイするのは簡単です。また、 v1WAR / EARを分離しておくことで、v1を導入したという理由だけで回帰テストを実行する必要がなくなりますv2

別々のWAR/EARを使用するため、URL戦略はおそらく次のようにする必要がmyURLv1/../v1ありmyURLv2/../v2ます...

それが理にかなっていることを願っています。

于 2012-11-28T09:50:56.040 に答える