Web api


Published on

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.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Web api

  1. 1. ASP.NET Web APIUdaiappa RamachandranNHDN-Nashua .NET/Cloud Computing UG LeadEmail: udaiappa@gmail.comBlog: http://cloudycode.wordpress.com
  2. 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. 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
  4. 4. Demo: Web API Basics
  5. 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
  6. 6. Demo: Web API Routing
  7. 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
  8. 8. Demo: Web API Filtering
  9. 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
  10. 10. Pipeline Elements
  11. 11. Pipeline Elements
  12. 12. Demo: Web API PipelineDemo: Custom Handlers
  13. 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
  14. 14. Demo: Simple ResolverDemo: Resolve using DI Framework
  15. 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
  16. 16. Demo: Data ModelDemo: MIME Types
  17. 17. Hosting IIS    Self Hosting    
  18. 18. Demo: Self Hosting
  19. 19. Resource http://cloudycode.wordpress.com http://www.asp.net/web-api/overview http://code.msdn.microsoft.com/ASPNET-Web-API-Self- Host-30abca12 http://msdn.microsoft.com/en-us/library/gg309461.aspx http://blogs.msdn.com/b/webdev/archive/2012/08/26/asp- net-web-api-and-httpclient-samples.aspx
  20. 20. Q&A