In computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building software and applications.
To put it in simple terms, API is some kind of interface which has a set of functions that allow programmers to access specific features or data of an application, operating system or other services.
Why Asp.Net Web API (Web API) ?
- Today, a web-based application is not enough to reach it's customers. People are very smart, they are using iphone, mobile, tablets etc. devices in its daily life. These devices also have a lot of apps for making the life easy. Actually, we are moving from the web towards apps world.
- So, if you like to expose your service data to the browsers and as well as all these modern devices apps in fast and simple way, you should have an API which is compatible with browsers and all these devices.
- Web API is the great framework for exposing your data and service to different-different devices. Moreover Web API is open source an ideal platform for building REST-ful services over the .NET Framework. Unlike WCF Rest service, it use the full featues of HTTP (like URIs, request/response headers, caching, versioning, various content formats) and you don't need to define any extra config settings for different devices unlike WCF Rest service.
What is Web API?
- Asp.Net Web API is a framework for building HTTP services that can be consumed by a broad range of clients including browsers, mobiles, iphone and tablets.
- It is very similar to ASP.NET MVC since it contains the MVC features such as routing, controllers, action results, filter, model binders, IOC container or dependency injection.
- But it is not a part of the MVC Framework. It is a part of the core ASP.NET platform and can be used with MVC and other types of Web applications like Asp.Net WebForms. It can also be used as an stand-alone Web services application.
ASP.NET Web API Versions:
|Web API Version||Supported .NET Framework||Supported in||Coincides with|
|Web API 1.0||.NET Framework 4.0||VS 2010||ASP.NET MVC 4|
|Web API 2 - Current||.NET Framework 4.5||VS 2012, 2013, 2015, 2017||ASP.NET MVC 5|
Web API Features:
- It supports convention-based CRUD Actions since it works with HTTP verbs GET,POST,PUT and DELETE.
- Responses have an Accept header and HTTP status code.
- It may accepts and generates the content which may not be object oriented like images, PDF files etc.
- It has automatic support for OData. Hence by placing the new [Queryable] attribute on a controller method that returns IQueryable, clients can use the method for OData query composition.
- Responses are formatted by Web API’s MediaTypeFormatter into JSON, XML or whatever format you want to add as a MediaTypeFormatter.
- It also supports the MVC features such as routing, controllers, action results, filter, model binders, IOC container or dependency injection that makes it more simple and robust.
- It can be hosted with in the applicaion or on IIS.
What defference between ASP.NET Web API and WCF:
|Open source and ships with .NET framework.||Ships with .NET framework|
|Supports only HTTP protocol.||Supports HTTP, TCP, UDP and custom transport protocol.|
|Maps http verbs to methods||Uses attributes based programming model.|
|Uses routing and controller concept similar to ASP.NET MVC.||Uses Service, Operation and Data contracts.|
|Does not support Reliable Messaging and transaction.||Supports Reliable Messaging and Transactions.|
|Web API can be configured using HttpConfiguration class but not in web.config.||Uses web.config and attributes to configure a service.|
|Ideal for building RESTful services.||Supports RESTful services but with limitations.|
When to use ASP.NET Web API?
- Choose Web API if you are using .NET framework 4.0 or above.
- Choose Web API if you want to build a service that supports only HTTP protocol.
- Choose Web API to build RESTful HTTP based services.
- Choose Web API if you are familiar with ASP.NET MVC.
- If we need a Web Service and don’t need SOAP, then ASP.Net Web API is best choice.
- It is open source.
- It is light weight architecture and good for devices which have limited bandwidth like smart phones.
- It doesn't have tedious and extensive configuration like WCF REST service.
- Simple service creation with Web API. With WCF REST Services, service creation is difficult.
When to use WCF?
- Choose WCF if you use .NET Framework 3.5. Web API does not support .NET 3.5 or below.
- Choose WCF if your service needs to support multiple protocols such as HTTP, TCP, Named pipe.
- Choose WCF if you want to build service with WS-* standards like Reliable Messaging, Transactions, Message Security.
- Choose WCF if you want to use Request-Reply, One Way, and Duplex message exchange patterns.