ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.
VoIP Service and Marketing using Odoo and Asterisk PBX
Web api
1. ASP.NET Web API
Udaiappa Ramachandran
NHDN-Nashua .NET/Cloud Computing UG Lead
Email: udaiappa@gmail.com
Blog: http://cloudycode.wordpress.com
2. Agenda
Introduction to Web API
Web API Routing
Web API Pipeline
Dependency Injections and Resolvers
Model Binding and Media Formats
Self Hosting
Deploying Web API into cloud
References
3. Introduction to Web API
Next iteration of WCF REST
Framework for developing REST Services
Released part of ASP.NET MVC
Uses HTTP protocol
Accessible from wide variety of clients
Http Methods: GET, POST, PUT, DELETE
URLs and Methods
5. Web API Routing
Web API Routing very similar to MVC routing
Action determined using the HTTP method not the URI path
Uses “api” in the rout is to avoid collisons with ASP.NET MVC
routing.
Adds “Controller” to the controller part of the URL
Default mapping thru global.asax
Additional URL parameters are mapped as action parameters
Explicitly specify the HTTP methods for an action by decorating
the action method with HttpGet, HttpPut, HttpPost or
HttpDelete attribute
Action can be defined thru AcceptVerbs as a method attributes
Route by Action Name
Override action name by using ActionName attribute
Ignore action by NoAction Attribute
7. Filtering
Uses OData specific keywords
Directs that related records should be retrieved in the record or collection
$expand
being retrieved.
Specifies an expression or function that must evaluate to ‘true’ for a record to
$filter
be returned in the collection.
$orderby Determines what values are used to order a collection of records.
$select Specifies a sub set of properties to return.
$skip Sets the number of records to skip before it retrieves records in a collection.
$top Determines the maximum number of records to return.
Install-Package Microsoft.AspNet.WebApi.OData -Pre
9. Web API Pipeline
Both Request and Response Model have pipeline
Web API has client and server side pipelines
Both Share the common object HttpMessageHandler
HttpRequestMessage
Represents all info about http request such as URL, HTTP Methods and
Headers
HttpResponseMessage
Represents all the info about the Http Response such as StatusCode,
Success Flag, Original Http Request
HttpMessageHandler
Common for both Request and Response
Most common processing code can be placed here
Ideal for authentication
Two Scopes: Global and Per-Route
Custom Handlers
Inherit DelegatingHandler
Custom code to perform any kind of per request functionality
13. Dependency Resolution
Service Oriented Architecture for Decoupling the
object
IoC: The concept of allowing something outside of
system to control it.
Often done thru DI frameworks
Unity
Ninject
Castle Windsor
Structure Map
Spring.net
Autofac
Web API provides a hook for us to wire up the
complex dependency
15. Data Model and MIME types
Returning JSON
Default return format
Good for mobile apps
does not require any special code
Returning XML
No code change
Set the request content type as application/xml
Mime Types:
return virtually anything that can be sent over the web
Inherit from BufferedMediaTypeFormatter
Override key methods
attach media formatter to configuration