簡體   English   中英

基於REST的Web服務中的SOAP消息

[英]SOAP messages in REST based web service

免責聲明:我對REST和基於SOAP的服務感到困惑。
在閱讀基於REST的Web服務上的許多教程(看起來彼此矛盾)后,我想知道我們是否可以/應該使用SOAP在基於REST的Web服務中發送/接收消息?
我試過以下鏈接
1) http://www.ibm.com/developerworks/webservices/library/ws-restful/

2) http://rest.elkstein.org/2008/02/how-simple-is-rest.html

通過“基於SOAP的服務”,我假設您的意思是WS-I Basic Profile Web服務。 區別很重要,因為SOAP可以與REST以及WS-I BP Web服務一起使用。 讓我解釋。

SOAP是一種基於XML的消息傳遞格式,用於交換數據。 Soap還定義了一種進行遠程過程調用的方法。 SOAP是W3C的開放標准。 SOAP與底層傳輸層無關。 經常使用HTTP作為傳輸層,但它可以很好地運行在SMTP和TCP以及其他傳輸上。

REST是一種架構風格(不是標准),因此請注意不要直接比較REST和SOAP,因為您沒有將蘋果與蘋果進行比較。 REST采用HTTP並使用它是它的用途,具有所有細微之處和豐富性。 REST架構風格可用於以任何格式傳輸數據 - 它不強制要求任何特定的數據格式。 因此,SOAP是一種非常好的REST樣式Web服務序列化格式。 但是許多人使用JSON,XML,純文本和許多其他格式的REST。 您也可以愉快地通過REST交換二進制數據,如圖像文件。 好的是你可以選擇對你的應用程序最有意義的數據格式。

請注意,由於REST是一種模式,而不是標准,因此對於真正RESTful的含義存在很多爭議。 有一個名為Richardson成熟度模型的概念,它為REST理想提出了一系列步驟。 通過與Richardson模型的比較,我們可以確切地了解REST實現的RESTful。 WS-I BP Web服務在這種規模上處於0級(即,根本不是非常RESTful,僅使用HTTP作為啞傳輸層)。

關於選擇REST vs WS-I Basic Profile Web服務,我會這么說 - 這取決於您的受眾。 如果您正在企業內部開發B2B類型接口,則更常見的是查看WSI-BP Web服務。 因為存在底層標准,並且由於企業供應商(例如IBM,Oracle,SAP,Microsoft)的成熟支持以及特別是在.NET和Java中的框架支持水平,WSI-BP很有意義當您需要快速完成某項工作並希望客戶端在企業環境中輕松連接時,交換的數據就是業務數據,可以很好地序列化為SOAP。

另一方面,如果您向更廣泛的網絡受眾展示網絡服務,我會說從WSI-BP到RESTful風格已有一種趨勢。 由於REST僅假定客戶端支持HTTP,因此可以使其與最廣泛的受眾進行互操作。 REST還為您提供了Web本身的可擴展性,並支持對資源進行緩存等,這使得它可以比WSI-BP Web服務更好地擴展到大量受眾。

暫無
暫無

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

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