2011-06-17 63 views
5

如果基於REST的Web服務像獲取和發佈到網址一樣簡單並解析響應,那麼我們需要一個wsdl?重點是什麼。我明白,當使用基於SOAP的服務時,它被用來構造SOAP請求和響應,但是我不明白爲什麼Visual Studio爲我創建基於REST的服務時爲我提供了一個wsdl ...具有基於休息的服務的WSDL中的要點是什麼?

回答

4

對於使用WCF創建的REST服務,WSDL毫無意義,因爲WCF僅支持無法描述REST的WSDL 1.1(或1.0)。如果您嘗試使用爲WCF REST服務生成的WSDL創建客戶端代理,您將無法調用該服務。用於REST的Visual Studio模板不公開元數據,因此只有在您自己添加serviceMetada行爲(也可能是mex端點)的情況下才會獲得無用的WSDL。

WSDL 2.0和WADL支持REST服務的描述,其重點與SOAP服務類似 - 描述了您可以使用服務做什麼,但採用REST方式。

2

沒有意義。 WSDL只是對服務公開的內容以及如何調用的標準化描述。您不需要需要 WSDL,但您需要某種方式記錄可以對您的服務執行哪些操作,以便客戶端知道如何調用它。

6

WSDL旨在允許客戶主要在設計時發現服務功能。 REST具有超媒體約束,要求所有服務功能應在運行時通過它們返回的鏈接表示發現。

正確的REST服務自然是可發現的,因此不需要額外的WSDL規範。

+0

那麼,如何讓REST服務「自然」被發現?我曾經想出一個REST服務提供的唯一方法就是閱讀API文檔。 – ZimSystem 2011-10-29 17:55:14

相關問題