2012-10-19 133 views
20

我已經在C#中創建了一個REST風格的Web服務,並已將其部署到IIS。當我訪問服務HeadOffice.svc時,我可以選擇查看WSDL(HeadOffice.svc?wsdl)。我想要做的是可以選擇查看WADL(例如HeadOffice.svc?wadl)。這可能嗎?REST風格的Web服務自動生成WADL

我已經閱讀了一般意見認爲這不是最佳實踐的地方。不過,我需要WADL來完成一個學校任務,所以任何幫助都會非常感激。

回答

17

假設你已經知道WADL不是標準的/不被廣泛支持。而當有人需要WADL時,最好使用WS */SOAP服務+ WSDL。所以你的任務看起來很奇怪。

無論如何,WADL在微軟的任何REST實施中都不支持「開箱即用」,既沒有WCF 3.5 Rest Starter Kit,也沒有WCF 4 REST和ASP.NET WebAPI。

WADL for .NET沒有可靠的工具。

當您的目標是使用WADL生成C#客戶端代碼時,請相信我,您將花更多時間來自己編寫客戶端代碼。對此有更好的解決方案。

您可以使用新的類,如HttpClient類或RestSharp或類似的庫可以輕鬆地手動編寫你的客戶,這將是更快然後使用Google爲.NET

類似問題的可靠解決方案WADL計算器上:Restful service in .NET with WADL instead of WSDL

UPDATE - Swagger: 多年來swagger已經確立了自己的格式。您可以使用Swagger的YAML在Swagger editor中編寫服務定義,或者使用Swashbuckle庫從現有服務生成Swagger。第二個是我們使用WSDL的東西,而Swagger編輯器讓您生成客戶端和服務器樣板。無論您是生成服務器還是客戶端,還是不喜歡它,swagger實際上都是REST服務的非常好的合同交換格式,不是理想的選擇。

+0

感謝您的信息!我打算從WADL生成Java代碼。不過,看起來我需要揉一下WADL以外的其他路徑。 –

+0

第一個鏈接完全沒用,看起來像你已經鏈接到一個甚至沒有任何源代碼的項目。重點是什麼? –

+0

德米特里Nesteruk點是WADL像那個鏈接死了.NET和過時。最好手動編寫服務訪問權限,然後嘗試使用WSDL SOAP風格生成 – Regfor