Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Rest assured

2,699 views

Published on

Published in: Technology
  • Be the first to comment

Rest assured

  1. 1. RESTAssuredYaniv RodenskiSenior Consultant, Sela Grouphttp://blogs.microsoft.co.il/blogs/roadanTwitter: @YRodenski
  2. 2. A brief history of The Web API March 2012 ASP.NET is Open Source6 Preview Versions Fab 2012 ASP.NET Web API (Beta) October 2010 WCF Web API on Code Plex
  3. 3. State of the web• Today the web faces new challenges: – Internet scale applications – Cloud operating systems
  4. 4. State of the web• Today the web faces new challenges: – Even more complex integrations
  5. 5. State of the web• Today the web faces new challenges: – Broader reach of clients
  6. 6. Agenda• Basic terminology• REST via the ASP.NET Web API – Richardson maturity model – Hypermedia Patterns – Media types• Caching
  7. 7. SOAP• Promise to add “object access”-like semantics to the web – Operation centric – Uses a large message format• Extensible – Over the years a large amount of extending standards were created (AKA WS-*) – By extension, adds stateful semantics over the web• Promotes the use of the proxy pattern• Not web natural• Supported by major development environments
  8. 8. SOAP Service calls• Request• Response
  9. 9. HTTP• Promise to transfer hypertext• The primal and most native protocol of the web• Stateless• Supported by almost any device on the face of the earth
  10. 10. HTTP Service calls• Request• Response
  11. 11. SOA• SOA is an architectural approach for distributed systems• SOA defines four tenets focusing on service autonomy and boundaries• SOA is a fully mature architecture with well- known patterns and solutions for complex communication and integration scenarios
  12. 12. REST• The term Representational State Transfer (REST) was coined by Roy Fielding in his Ph.D. thesis in 2000• An architectural style that embraces HTTP and the World Wide Web• Web friendly
  13. 13. Richardson maturity model• Leonard Richardson’s maturity model describes four levels of service maturity Hypermedia Http Resources
  14. 14. RMM – Level zero services• Level zero services do not use HTTP as an application protocol.• Use HTTP as a transport for other remote interaction mechanism Hypermedia Http Resources
  15. 15. RMM – Level one services• Level one services acknowledge resources• Resources are accessed via a unique address (formatted as a Universal Resource Identifier)• When accessed, a resource returns a representationhttp://myfooty.com/players/henriquehttp://myfooty.com/players/neymar Hypermedia Http Resources
  16. 16. Level one service
  17. 17. Web neutrality• In his famous 2001 bath-tub talk Don Box drew the line between web pages and web services by defining their consuming life forms: Carbon based Silicon based Web Pages Web Services
  18. 18. RMM – Level two services• Level two services use HTTP mechanisms properly: – Verbs – Status codes – Headers Hypermedia Http Resources
  19. 19. HTTP verbs• HTTP defines different methods (sometimes called verbs) to indicate a desired action to be performed on a resource• These verbs define a common terminology that is accepted by users, developers and the infrastructure of the World Wide Web
  20. 20. Using HTTP verbs for CRUD
  21. 21. HTTP status codes• In addition to a response message, HTTP uses status codes to communicate to the clients the resultant status of the operation• The first digit of the status code specifies one of five classes of response: – 1xx Informational – 2xx Success – 3xx Redirection – 4xx Client Error – 5xx Server Error
  22. 22. HTTP headers• HTTP uses headers to transfer metadata regarding the message’s content and transport• HTTP headers are one of HTTP’s main extensibility points
  23. 23. Level Two Service
  24. 24. RMM – Level three services• Level one and two services deal with resources which represent entities• Level three services introduce flow management via hypermedia controls (For example: links) Hypermedia Http Resources
  25. 25. RMM – Level three services• Hypermedia is used as a logical extension of the term hypertext in which graphics, audio, video, plain text and hyperlinks intertwine to create a generally non-linear medium of information. http://en.wikipedia.org/wiki/Hypermedia Hypermedia Http Resources
  26. 26. Hypermedia Application
  27. 27. Hypermedia Patterns• Hypermedia can be used to express different behaviors in an application: – Control flow management (State machine) – Discoverability and versioning – Properties management – Aspect management – Paging
  28. 28. OData paging
  29. 29. Media types (MIME)• HTTP media types are used to describe the format of the message body• In REST media types are used describe representations, hypermedia controls, and processing rules• By creating a media type we can define the application’s domain
  30. 30. Using Media Formatters
  31. 31. Cache the REST• HTTP caches can store copies of the responses along the request response path to reduce network traffic• HTTP caches reduces call latency• Caches are a main factor for scalability on the web
  32. 32. Types of Cache• Browser Cache Stores representations locally on the computer’s hard drive• Proxy Cache Corporates and ISPs provide shared proxies providing shared cache on their network• Gateway (Reverse Proxy) Cache Stores representations on behalf of the server. Content Delivery Networks (CDNs) use gateway cache distributed around the web
  33. 33. Controlling Cache• HTTP headers can be used to control cache behaviors• HTTP provides method the avoid staleness of cached data – Expiration – Validation
  34. 34. Controlling Cache Behavior
  35. 35. Summary• HTTP is a powerful application level protocol• Built to serve the worlds largest information system• REST provides an architecture that enables better use of the inherent scaling capabilities of the web• Hypermedia enables us to scale and grow our application
  36. 36. My Blog ASP.NET Web APIshttp://bit.ly/roadan http://www.asp.net/web-api/(best viewed from multiple ip addresses)Architectural Styles and the Design of HTTP/1.1 Specifications http://www.w3.org/Protocols/Network-based Software ArchitecturesRoy Fieldinghttp://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm REST in practice (Book) http://restinpractice.com/default.aspxDebugging the web with FiddlerIdo Flatowhttp://scc.sela.co.il/SCC/Pages/ShowLecture/ShowLecture.aspx?lectureId=642

×