我是WCF RESTFull服務開發的新手,我正在尋找一些有用的信息和關於使用webHttpBinding與新的WCF Web API http://wcf.codeplex.com/相比的體驗反饋。WCF Web Api vs WebHttpBinding
我在尋找的是要了解webHttpBinding的缺點,以及爲什麼要使用新的Web API,特別是新API解決的問題。 如果你可以指向我比較兩個人的博客文章,或只是談論使用webHttpBinding時的問題,我將不勝感激。先謝謝你。
我是WCF RESTFull服務開發的新手,我正在尋找一些有用的信息和關於使用webHttpBinding與新的WCF Web API http://wcf.codeplex.com/相比的體驗反饋。WCF Web Api vs WebHttpBinding
我在尋找的是要了解webHttpBinding的缺點,以及爲什麼要使用新的Web API,特別是新API解決的問題。 如果你可以指向我比較兩個人的博客文章,或只是談論使用webHttpBinding時的問題,我將不勝感激。先謝謝你。
主要缺點我想說的是,webhttpbinding使處理HTTP特定問題變得困難。如果您所做的只是通過HTTP傳遞一個對象,而該對象被序列化爲XML或JSON,並且可以通過不同的格式傳輸,那麼它會很好用。
HTTP不僅僅是一個簡單的XML和JSON傳輸協議,它是一個具有豐富語義的應用層協議。 Web API特別針對那些希望通過HTTP構建系統的人充分提升HTTP的豐富性。
Web API支持HTTP資源可以根據不同客戶端的需求具有多種表示形式。該頻譜的一端可能是一個愚蠢的瀏覽器,只使用表單URL編碼的帖子和GET與服務對話,而另一端可能是使用Atom/OData或基於超媒體的媒體類型的更豐富的客戶端。
Web API認爲還有其他HTTP特定問題,如conneg,etags等,它們可以更好地利用中間Web服務器。
Web API的設計考慮了更多的可測試性,因此您可以通過更易測試的方式解決HTTP消息或其他問題。
Web API具有更簡化的配置故事。
你可以閱讀更多關於這裏的理由:http://blogs.msdn.com/b/endpoint/archive/2010/11/01/wcf-web-apis-http-your-way.aspx
Web API就像WCF中REST開發的未來可能。它只是預覽,可以在最終版本之前發生重大變化(可能在.NET框架的下一個版本中)。所以如果你想構建生產REST服務,你應該使用webHttpBinding。
有關Web Api的可用信息可以在例如.NET Connected Framework team's blog和您提到的網站上找到。這是對當前REST API的簡化和擴展。
Web API將在類似於MVC的.NET 4.0上運行。你可以在wcf.codeplex.com找到它。 – 2011-09-02 15:53:18
對我而言,最重要的不同是編程模型的改變。您不再編寫暴露HTTP操作綁定到HTTP慣例(GET,POST等)的'services'。藉助Web API,您可以創建客戶可以與之交互的「資源」(POCO)。
Web API在處理各種自定義媒體類型(例如PNG圖像)時似乎更好。
最後但並非最不重要的一點,Web API更適合自動化測試。例如,您不再需要使用靜態上下文類來訪問HTTP概念,例如響應代碼。您可以使用POCO請求和響應類,這些類可以使用舊式new()運算符在自動化測試中輕鬆實例化。
我同意拉迪斯拉夫的觀點,即現在Web API只是一個預覽版,在它之上構建應用程序可能會受到許可協議方式的風險和禁止(但我沒有檢查過)。
你考慮過@ serialseb的OpenRasta嗎?它非常穩定,爲構建RESTful服務提供了非常好的編程模型。
的Web API提供了一個基於REST的友好HTTP API。 Web API使用MVC模式,並且對ASP.NET MVC開發人員非常熟悉。 Web API可以利用HTTP的功能作爲應用層協議,根據客戶端的請求頭以多種表示(XML,JSON,HTML等)返回資源。另一方面,WCF webHttpBinding使用WCF的模式,並將更多地吸引WCF開發人員 - ServiceContracts,OperationContracts,全面的(或超重,取決於你如何看待它,配置文件),自我的能力在IIS之外的主機。
我喜歡Web API的一個特性就是能夠使用動態類型來避免類型系統的約束。我也喜歡Web API中的默認異常行爲 - 對比WCF webHttpBinding,默認情況下,異常冒泡爲HTTP 500 + HTML負載(yuk!)。
它很高興在這裏有兩種優秀的技術之間進行選擇。我不會將Web API描述爲WCF的「更新」或「更好」,因爲這意味着其替代技術,而WCF webHttpBinding是遺留的,我不相信這是真的。
我選擇最近使用WCF webHttpBinding來爲現有的WCF SOAP服務公開JSON API。我相信這是一個不錯的選擇,因爲它符合現有解決方案的這種風格,並最大限度地減少了所需的更改量。
從微軟的程序管理器來說,它聽起來像「如果你正在做HTTP,你可以忘記WCF」。這是你說的嗎? WCF在HTTP領域的未來是什麼? – 2011-06-02 12:23:55
WCF Web API是WCF :-)我們所說的是WCF Web API比WCF 4.0/webhttbinding更適合於使用HTTP /構建RESTful服務。 – 2011-09-02 15:52:34