Rest assured


Published on

Published in: Technology
  • Be the first to comment

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

No notes for slide
  • Focuses on improving web communication by using mechanizes like caching, ETags, the TRACE verb etc.
  • Focuses on improving web communication by using mechanizes like caching, ETags, the TRACE verb etc.
  • This model allows a resource to manage its own state while the client manages the application stateRepresentations can also be cached
  • The “web” uses resources and their representations for caching and scalability.Resources prevent the need to dibranchiate web pages and services
  • This model allows a resource to manage its own state while the client manages the application state
  • This model allows a resource to manage its own state while the client manages the application state
  • Rest assured

    1. 1. RESTAssuredYaniv RodenskiSenior Consultant, Sela Group @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 representation 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. 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 APIs viewed from multiple ip addresses)Architectural Styles and the Design of HTTP/1.1 Specifications Software ArchitecturesRoy Fielding REST in practice (Book) the web with FiddlerIdo Flatow