對於SOAP Web服務,有一個規範,所有請求/響應必須遵循。本規範採用WSDL文檔的形式。但是對於REST Web服務,爲什麼沒有這樣的規範或WSDL?這是否會使REST更容易受到運行時異常的影響,因爲我們沒有遵循任何規範?爲什麼REST沒有與SOAP不同的WSDL
15
A
回答
12
REST真的只對資源使用HTTP動詞(GET
,PUT
,POST
,DELETE
,...)。資源上的所有操作都應該以這種方式表示。 POST
被用作捕捉所有的東西,當你無法以適合其他三種方式來表達你的業務邏輯。這就是爲什麼REST服務沒有真正的WSDL,因爲在資源上只有4種方法。
但是你還有the possibility to describe a REST web service with WSDL 2.0。
18
有很多方法來定義一個RESTful API就像WSDL對SOAP一堆:
你可以在這裏找到更多關於my blog post的信息。
2
SOAP
是一個協議。
REST
是一種架構。
在許多參考文獻中,您將看到REST和SOAP都被提及爲 的競爭對手。那是不正確的。 SOAP實際上是一個協議,而不是一個 架構風格。可以與REST進行比較的是SOA和RPC。 這三個都是Web服務樣式的例子,每個樣式都有自己的 概念焦點。 RPC專注於操作,圍繞 消息的SOA,以及圍繞資源的REST。 (ref)
所以對於SOAP,寫了WSDL document standards。但是對於REST,沒有標準文檔,但有許多最佳實踐,如http://jsonapi.org
相關問題
- 1. 爲什麼沒有WSDL的SOAP?
- 2. 什麼是WSDL,SOAP和REST?
- 3. SOAP與REST和WSDL
- 4. WCF - 爲什麼沒有WSDL
- 5. SOAP的WSDL - REST如何?
- 6. 瞭解WSDL,SOAP,REST等
- 7. UDDI,DISCO和WSDL有什麼不同?
- 8. 爲什麼我們應該在WSDL中有SOAP位置?
- 9. WSDL警告:不是SOAP端口,它沒有soap:地址
- 10. 爲什麼沒有ActiveRecord REST適配器
- 11. 對於與SOAP不同的其他協議的WSDL?
- 12. Android Web服務,REST還是SOAP WSDL?
- 13. 爲什麼我不能同時使用DocuSign API的REST和SOAP版本?
- 14. 爲什麼會使用REST而不是基於SOAP的服務?
- 15. 創建沒有WSDL文件的PHP SOAP請求(Flickr SOAP API)
- 16. 有沒有什麼辦法隱藏wsdl中的WCF soap web服務的操作合同標籤?
- 17. 使單個WCF服務同時支持SOAP,REST和WSDL
- 18. WSO2 API Manager將JSON REST API轉換爲後端的SOAP/WSDL
- 19. SOAP-ERROR:解析WSDL:沒有地址與<port>相關
- 20. 有沒有Google代碼問題的API(SOAP,JSON,XML-RPC,REST,什麼)?
- 21. 「((...))」與「(...)」有什麼不同?
- 22. 沒有WebServiceHostFactory的WCF REST和SOAP服務
- 23. 爲什麼我使用authorize.net獲取此WSDL SOAP錯誤?
- 24. 與SOAP的FaultException相當的REST是什麼?
- 25. 不同於XML-RPC REST通過WSDL
- 26. REST不是一個標準的「Per-Se」,那麼爲什麼WCF創建一個wsdl,有什麼意義,它比SOAP差嗎?
- 27. 爲什麼GlassFish和JBoss提供不同的WSDL?
- 28. 服務堆棧(REST)SOAP和WSDL不工作
- 29. SOAP for NodeJS不使用WSDL
- 30. 爲什麼Amazon EC2 WSDL中沒有WS-Security/WS-Policy聲明?
由於使用標準HTTP動詞,對於REST服務不需要類似WSDL的建議具有誤導性。現實情況是,一般來說,你不能指望不同的REST實現以相同的方式使用HTTP,而HTTP動詞不會告訴你任何有關它們所作用的表示的信息。因此,對於任何給定的REST服務,關於如何使用它的信息都存在巨大的真空,讓實施者開發一些描述它的帶外方式,從「閱讀我們的文檔」到「用瀏覽器瀏覽並找出它「。 – Hoobajoob 2014-04-16 17:53:13