因此,我對Web服務有點新,最近出現了一種情況,我們向返回給客戶端的數據類型添加了一個元素。客戶抱怨說,這打破了他們的實施,因爲它窒息了它沒有預料到的新元素。 (我們通過Axis2提供服務)。向後兼容性和Web服務
對我來說,這似乎是一個無害的變化,客戶端應該能夠正常處理(我已經與一些非Web服務框架一起添加可選信息是完全可以接受的)。我可以理解,如果我們刪除或重命名某些會導致客戶端問題的字段。
基本上我會期望wsdl的行爲就像一個接口。如果我們做了一個基本上是這個接口的子類型的改變,我希望客戶能夠愉快地忽略無關的元素。這僅僅是網絡服務的一個短暫來臨,還是有一種對服務進行被動更改的理智方式,以便新客戶可以獲得額外數據,而舊客戶可以在閒暇時進行更新?
我建議有可能在客戶端捏造,並沒有使用SOAP接口,也許解析由一些可怕的手動解析/正則表達式軟糖的反應(這是驚人的,有多少人做到這一點)。我說這是因爲我經常在Unix和Windows系統上(用於Web應用程序,服務器端和桌面客戶端應用程序)在C#,PHP,Perl和JavaScript中創建構建客戶端和服務器SOAP接口,並且從未遇到過這個問題(添加可選字段在請求或響應中從未造成過任何問題)。我會問他們使用什麼SOAP客戶端。 :-) – 2010-02-09 10:39:00