WCF、Web Service、Web API三者差異

  • 24602
  • 0

WCF、Web Service、Web API三者差異


Web Service

1. 基於SOAP協議,存儲格式為XML
2. 只支援HTTP通訊協定,透過WSDL定義接口
3. 非開源,但可以被任何一個了解XML的人使用
4. 只能佈署在IIS上面

WCF

1. 初始一樣為SOAP,存儲格式為XML
2. 為Web Service進化版,可支援像TCP,HTTP,HTTPS,Named Pipes, MSMQ等等通訊協定
3. 非開源,但可以被任何一個了解XML的人使用
4. 可以佈署在應用程式、IIS、Windows服務中
5. 缺點為設定方式繁瑣

Web API

1. 為一種建立HTTP服務的新框架
2. 在.net平台上,Web API是一種用來建立理想的、開源的REST-ful的技術
3. 不像WCF REST Service,它可以使用HTTP的全部特點(比如URIs、Request/Response Header,暫存,版本控制,多種內容格式)
4. 它也支持MVC的特徵,像Route、Controller、Action、Filter、Model-Binding、控制反轉(IOC)或依賴注入(DI),單元測試。這些可以使程式更簡單、更健壯
5、它可以部署在應用程序和IIS上
6、為一個輕量級的框架,並且對限制頻寬的設備如智慧型手機支援良好
7、Response可以被Web API的MediaTypeFormatter轉換成Json、XML 或者任何想轉換的格式。

* 所有Web Service都是Web API,但所有Web API都不是Web服務。
* Web Service可能無法執行API將執行的所有操作。
* Web Service僅使用三種使用方式:SOAP,REST和XML-RPC通信,而Web API可以使用任何風格進行通信。
* Web Service始終需要網路才能運行(只走HTTP),而Web API不需要網路來運行(可用TCP等等)。

 

參考文章:

https://blog.csdn.net/Nep_tune/article/details/78667214

https://blog.csdn.net/mss359681091/article/details/53353258

https://stackoverflow.com/questions/808421/api-vs-webservice

https://stackoverflow.com/questions/19336347/what-is-the-difference-between-a-web-api-and-a-web-service