Asp.net-Web-Api
wcf restful services和WEB API的區別
我查詢了很久。到底哪裡需要使用WEB API,哪裡需要使用WCF restful services。我們想在 WEB API 中實現什麼,我們都可以在 WCF Rest 中實現。我試圖深入研究答案,但我知道我們需要在 wcf 中進行額外的設置,例如 URI 模板、契約、端點。但它更多關於設置,但我想知道使用 WCF Restful Services 背後的真正原因。
網路服務
- 它基於 SOAP 並以 XML 格式返回數據。
- 它僅支持 HTTP 協議。
- 它不是開源的,但可以被任何理解 XML 的客戶端使用。
- 它只能託管在 IIS 上。
WCF
- 它也是基於 SOAP 並以 XML 格式返回數據。
- 它是 Web 服務 (ASMX) 的演變,支持 TCP、HTTP、HTTPS、命名管道、MSMQ 等各種協議。
- WCF 的主要問題是其繁瑣而廣泛的配置。
- 它不是開源的,但可以被任何理解 XML 的客戶端使用。
- 它可以託管在應用程序或 IIS 上或使用視窗服務。
WCF 休息
- 要將 WCF 用作 WCF REST 服務,您必須啟用
webHttpBindings.- 它分別支持 HTTP GET 和 POST 動詞 by
[WebGet]和[WebInvoke]attributes。- 要啟用其他 HTTP 謂詞,您必須在 IIS 中進行一些配置以接受該特定謂詞對
.svc文件的請求。- 使用
WebGet需求配置通過參數傳遞數據。UriTemplate必須指定。- 它支持 XML、JSON 和 ATOM 數據格式。
網路 API
- 這是用於以簡單的方式建構 HTTP 服務的新框架。
- Web API 是開源的,是使用 .NET Framework 建構 RESTful 服務的理想平台。
- 與 WCF REST 服務不同,它使用 HTTP 的全部功能(如 URI、請求/響應標頭、記憶體、版本控制、各種內容格式)。
- 它還支持 MVC 功能,例如路由、控制器、動作結果、過濾器、模型綁定器、IOC 容器或依賴注入、單元測試,使其更加簡單和健壯。
- 它可以託管在應用程序中或 IIS 上。
- 它是一種輕量級架構,適用於智能手機等頻寬有限的設備。
- 響應由 Web API 格式化
MediaTypeFormatter為 JSON、XML 或您想要添加為MediaTypeFormatter.在 WCF 或 Web API 之間進行選擇
- 當您要創建應支持特殊場景(例如單向消息傳遞、消息隊列、雙工通信等)的服務時,請選擇 WCF。
- 當您想要創建一個可以使用快速傳輸通道(例如 TCP、命名管道,甚至可能是 UDP(在 WCF 4.5 中))的服務時選擇 WCF,並且您還希望在所有其他傳輸通道不可用時支持 HTTP。
- 如果您想通過 HTTP 創建面向資源的服務,可以使用 HTTP 的全部功能(如 URI、請求/響應標頭、記憶體、版本控制、各種內容格式),請選擇 Web API。
- 如果您希望將服務公開給包括瀏覽器、手機、iPhone 和平板電腦在內的廣泛客戶端,請選擇 Web API。
有關更多詳細資訊,您可以參考http://www.c-sharpcorner.com/UploadFile/8a67c0/who-is-winner-web-api-or-wcf/。