***Important remark: this is all unofficial information I have found while browsing through the WCF Web API discussion board. So feel free to leave a comment if some of the things I’ve found are not correct.***
WCF Web API will die soon. But in it’s ashes a new API is born, this time based on ASP.NET instead of WCF.
I found the following information about this:
WCF Web API will die soon. But in it’s ashes a new API is born, this time based on ASP.NET instead of WCF.
I found the following information about this:
- Web API will be coming late February as part of the ASP.NET MVC 4 beta.
- RTM in Q3 2012
- Will support ASP.NET 4.0, including a HttpClient implementation
- ASP.NET Web API is not limited to only MVC4, possible to host in WebForms for example.
- ASP.NET Web API is a separate assembly with no dependency on system.web.mvc.dll
- Deep integration with MVC routing to identify resources, including default values and constraints
- Web API uses MapHttpRoute() with a routeTemplate ("api/{controller}/{id}"), very similar to the MVC .MapRoute.
- UriTemplates not attributes on methods anymore.
- Discovers actions based on method name (Get, Post etc), but possible to override with attributes.
- HttpOperationHandler replaced by MVC ActionFilters.
- Authorization filter attributes, just like MVC
- Exception filters
- All stack is async Task based.
- Web API classes inherit from ApiController base class
- Instantiated per request, stateless
- HTTP methods are now like MVC actions
- Official site will probably be (not working at the moment): http://asp.net/web-api
- HttpResponseException and HttpResponseMessage/Request still there
- MVC-like model binding to input parameters
- Model binding validation using filters and data annotations!
- Message body bound to types using MediaTypeFormatters
- Content negotiation supported based on Accept header
- No static context objects
- HttpRequestMessage.Properties is still the way to keep request context
- Out-of-the box IOC integration through DependencyResolver
- OData supported simply by returning IQueryable<T> from actions, the rest is automatic.
- Web API/MVC ships with dynamic JsonObject types
- Supports hosting in IIS or self-hosting.
- Only a tiny bit of WCF left in there(in the self-host client).
- Supports JSON.NET out of the box.