There are lots of article out there to explain you the difference between WCF and Web Api. But while working in practical scenarios which one to choose ? In this article I will cover the difference from the pragmatic point of view which should help you to choose the best among WCF and web api.
WCF vs Web API
Scenarios for WCF | Scenarios for Web API |
WCF is based on SOAP protocol | Web Api is based on REST architecture |
Client need to have a proxy to contact the service operations. Learn how to create a client proxy here. | There is no need for client to have a proxy. The client can simple make a HTTP call to the URL and access the resources. |
If there are any changes done to the service, client need to know the changes through the WSDL document or changes in the proxy class at client side | There is no need for the client to update any documents or base class when changes are done for service |
To test the service we need to use the tools like WCFTestClient to check the results | There is no need to have any tools to test the output. We can see the output in any web client like IE, chrome etc. |
WCF supports various bindings like NetTcp, basicHttp, IPC, wsHttp. | Web Api supports only HTTP protocol which is stateless. |
WCF supports SOAP based output files which are basically XML files. It also supports Json format for WebBindings. | WCF supports output in form of Json, Text or it can support custom output formatters. |
Supports client proxy initialization like PerCall, Single, or per session based on the requirements | Does not provide any such functionality |
With WCF we have a very great functionality of exposing the Metadata in which client can know about the operations beforehand. | With web api we need to have well documented model so that client can know what it can access. |
WCF uses SOAP faults to transport the faults and exceptions across the wire. | Web Api uses Status code to show the success or error to the client. |
Operations in WCF can be invoked in many ways. We can invoke operations in many ways like Request/Response, One-way operation, call back and async calls. | Web API call only support request- response way of invoking the api methods. |
Conclusion:
I have covered all the possible differences between WCF and Web Api. If you are aware of any other differences please leave a comment.