簡體   English   中英

如何實施新版本的Web服務

[英]How to implement new version of web services

我閱讀了有關對Web服務進行版本控制的問題:

更新或版本化Web服務的策略

現在我想問一下如何實施新版本。

現在在URL上: myUrls/../v1接受Web服務。 現在,我想創建新版本: myUrls/../v2 我想保留舊的Web服務,只是將一些新的Web服務添加到新版本中。 我該怎么辦? 我需要創建新的端點,也可以使用當前的端點並進行一些更改。

尋求幫助

更新:

我正在使用spring-ws和SOAP

這取決於更改的性質。 如果只是在REST調用中添加其他方法,那么從理論上講,您可以僅添加到當前服務中,而所有其他方法仍然可以使用。

如果您使用的是諸如SOAP之類的合同優先型部署,那么您將需要進行版本升級,因為WSDL需要進行更新。

這確實取決於-您是否希望您的服務向后兼容當前版本的消費者? 如果您樂於在每次更改時強迫消費者重新構建代碼,那么可以,每次都更新相同的URL端點,但是如果我使用了您的服務,這會使我有些煩惱。

這取決於您如何部署Web服務。

就個人而言,如果更改是向后兼容的(如@ david99world所指出的),則只需將新操作添加到現有服務中。

如果更改不兼容(即現有操作的界面已更改),那么我會將新服務打包為新的EAR / WAR。 這樣,您可以同時運行兩個服務,因此並非所有服務使用者都需要同時更改/測試/部署其代碼。 通過具有兩個單獨的版本,您可以在兩個服務都處於工作狀態的過渡時期(盡管這取決於例如基礎數據庫的更改是否會阻止v1v2同時工作)。

另外,如果更改不成功,則可以輕松地取消部署v2 WAR / EAR而不會影響v1並且通過將WAR / EAR保持分開就很容易,因為您已經引入了v2所以無需對v1進行回歸測試。

由於使用單獨的WAR / EAR,URL策略很可能必須是myURLv1/../v1myURLv2/../v2 ...

希望有道理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM