天天看點

再談SOAP webservice 與 Restful webservice

自己接觸webservice已經有六年了,是處理異構跨平台資料交換的利器。具體概念不詳細交代了。有很多關于這方面的部落格。如:http://blog.sina.com.cn/s/blog_493a845501012566.html

這裡主要談的是自己的經曆和感受。

1.協定結構和格式定義:

SOAP + xml 簡單對象通路協定, 有SOAP頭, 可采用XSD或Bean注解的方式來定義資料

HTTP方法+ xml或json, 其實可以看做有HTTP頭,對傳輸資料格式要求不嚴格,比如元素是否必須,值,類型,頻率等遠沒有SOAP要求那麼高。

2.測試工具:

SOAPUI

java -jar restclient-ui-3.2.2-jar-with-dependencies.jar

3.調用方法最佳實踐

理論上用HTTPClient,發送服務端認可的内容,就可以得到響應。隻要協定一樣,内容格式符合定義,主流的開發語言都可以識别處理請求資訊(http,xml或json)并給以響應,這就是跨平台的本質。

SOAP最佳實踐,可以根據wsdl定義,生成相關的bean, 由bean來封裝資料,資料序列化反序列化都比較友善。

Restful,由于隻要http方法,推薦用json類型UTF-8格式,直接請求響應。json和bean互相轉化的工具也很多如Gson,

4.基本特點

SOAP成熟安全

Restful簡單高效

5.應用場景

Restful适合于前端互動,安全性不那麼高

SOAP适合元件服務間互相調用,業務定義良好明确