Web API 和 WCF 的比較


現在有很多可用的技術允許你創建被不同客戶端所消費的服務,這些客戶端可能是Web應用程序、Windows應用程序和移動應用等。服務可以支持http協議或者其他協議。接下來的討論僅限於ASP.NET Web API和WCF。

WCF(Windows Communication Foundation),使用WCF你可以構建安全可靠的服務,並且實現跨平台繼承和平滑地交互。

Web API,一個用於構建HTTP服務的框架。現在我們每天都在使用手機、平板、apps以及各種不同類型的服務,Web API是一個簡單可靠的平台,你能夠用它來構建服務於大范圍客戶端的HTTP服務。使用Web API你可以創建完整的REST服務。

SOAP

SOAP(Simple Object Access Protocol)是微軟所提出的用於創建在因特網上傳輸的結構化格式數據或消息的協議。SOAP是使用WCF和XML格式的主要基礎。Web Service構建用於提供有關服務數據信息的WSDL(Web Services Description Language)文件。WSDL文件用於客戶端理解服務中可用的方法。

REST

REST(Representational State Transfer)並非是像SOAP那樣的協議。它是用來構建Web Services的一種架構設計模式。Web API使用這種模式來構建Web服務。從根本上講,Web API是一種給客戶端暴露服務終結點的資源驅動型架構。Web API支持完整的REST風格,它使用GET, PUT, POST, DELETE與客戶端進行通訊。

交互性

RESTful服務(例如Web API)的特點是簡單、輕量級、支持HTTP請求,而且易於客戶端獲取。它不像SOAP那樣,需要客戶端理解WSDL來實現服務。WSDL使用額外的配置和要求附加邏輯,這樣可能對於很多設備例如手機、智能電視、平板電腦等就不是那么的便利。正是因為WCF支持多種協議,所以它能夠被眾多使用不同協議(HTTP、TCP、MSMQ等)的客戶端消費。

配置管理

相對於Web API,客戶端需要使用更多的配置來獲取WCF的服務。WCF使用了更多的配置項(例如終結點、行為等)來暴露服務。但是Web API有更多規范來為客戶端定制服務。

速度

由於RESTful服務使用HTTP協議和HTTP的請求/響應較SOAP輕巧,因此如果你打算為低流量設備或手機端構建服務,Web API會是最佳之選。相較於SOAP,HTTP的請求/響應可讀性更高,因為SOAP包含了header、body等更為復雜的元素。

安全

WCF提供了企業級別的高級別的安全等級,它使用了WS-I標准來提供安全服務。Web API使用了Web標准的安全措施,例如基本驗證、token驗證和更復雜的OAuth,Web API顯得更加靈活。如果你需要驗證外部服務例如谷歌、facebook等,那么使用SOAP。

 綜上所述,我們似乎難以決定哪個更好。但是,我們能得出兩點結論。一,如果你需要構建一個用於不同平台的服務,那么請使用WCF;二,如果你需要構建基於因特網的服務,那么請使用Web API。

 

WCF與Web API 區別(應用場景)

WCF、WebAPI、WCFREST、WebService之間的區別


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM