2013-04-09 73 views
15

對於SOAP Web服務,有一個規範,所有請求/響應必須遵循。本規範採用WSDL文檔的形式。但是對於REST Web服務,爲什麼沒有這樣的規範或WSDL?這是否會使REST更容易受到運行時異常的影響,因爲我們沒有遵循任何規範?爲什麼REST沒有與SOAP不同的WSDL

回答

12

REST真的只對資源使用HTTP動詞(GETPUTPOSTDELETE,...)。資源上的所有操作都應該以這種方式表示。 POST被用作捕捉所有的東西,當你無法以適合其他三種方式來表達你的業務邏輯。這就是爲什麼REST服務沒有真正的WSDL,因爲在資源上只有4種方法。

但是你還有the possibility to describe a REST web service with WSDL 2.0

+14

由於使用標準HTTP動詞,對於REST服務不需要類似WSDL的建議具有誤導性。現實情況是,一般來說,你不能指望不同的REST實現以相同的方式使用HTTP,而HTTP動詞不會告訴你任何有關它們所作用的表示的信息。因此,對於任何給定的REST服務,關於如何使用它的信息都存在巨大的真空,讓實施者開發一些描述它的帶外方式,從「閱讀我們的文檔」到「用瀏覽器瀏覽並找出它「。 – Hoobajoob 2014-04-16 17:53:13

2

SOAP是一個協議。
REST是一種架構。

在許多參考文獻中,您將看到REST和SOAP都被提及爲 的競爭對手。那是不正確的。 SOAP實際上是一個協議,而不是一個 架構風格。可以與REST進行比較的是SOA和RPC。 這三個都是Web服務樣式的例子,每個樣式都有自己的 概念焦點。 RPC專注於操作,圍繞 消息的SOA,以及圍繞資源的REST。 (ref

所以對於SOAP,寫了WSDL document standards。但是對於REST,沒有標準文檔,但有許多最佳實踐,如http://jsonapi.org

相關問題