RESTAssuredYaniv RodenskiSenior Consultant, Sela Grouphttp://blogs.microsoft.co.il/blogs/roadanTwitter: @YRodenski
A brief history of The Web API                        March 2012                                               ASP.NET is ...
State of the web• Today the web faces new challenges:  – Internet scale applications  – Cloud operating systems
State of the web• Today the web faces new challenges:  – Even more complex integrations
State of the web• Today the web faces new challenges:  – Broader reach of clients
Agenda• Basic terminology• REST via the ASP.NET Web API  – Richardson maturity model  – Hypermedia Patterns  – Media types...
SOAP• Promise to add “object access”-like semantics to the  web   – Operation centric   – Uses a large message format• Ext...
SOAP Service calls• Request• Response
HTTP• Promise to transfer hypertext• The primal and most native protocol of the  web• Stateless• Supported by almost any d...
HTTP Service calls• Request• Response
SOA• SOA is an architectural approach for  distributed systems• SOA defines four tenets focusing on service  autonomy and ...
REST• The term Representational State Transfer  (REST) was coined by Roy Fielding in his Ph.D.  thesis in 2000• An archite...
Richardson maturity model• Leonard Richardson’s maturity model  describes four levels of service maturity                 ...
RMM – Level zero services• Level zero services do not use HTTP as an application  protocol.• Use HTTP as a transport for o...
RMM – Level one services• Level one services acknowledge resources• Resources are accessed via a unique address (formatted...
Level one service
Web neutrality• In his famous 2001 bath-tub talk Don Box  drew the line between web pages and web  services by defining th...
RMM – Level two services• Level two services use HTTP mechanisms  properly:  – Verbs  – Status codes  – Headers           ...
HTTP verbs• HTTP defines different methods (sometimes  called verbs) to indicate a desired action to be  performed on a re...
Using HTTP verbs for CRUD
HTTP status codes• In addition to a response message, HTTP uses  status codes to communicate to the clients the  resultant...
HTTP headers• HTTP uses headers to transfer metadata  regarding the message’s content and transport• HTTP headers are one ...
Level Two Service
RMM – Level three services• Level one and two services deal with  resources which represent entities• Level three services...
RMM – Level three services• Hypermedia is used as a logical extension of  the term hypertext in which graphics, audio,  vi...
Hypermedia Application
Hypermedia Patterns• Hypermedia can be used to express different  behaviors in an application:  – Control flow management ...
OData paging
Media types (MIME)• HTTP media types are used to describe the  format of the message body• In REST media types are used de...
Using Media Formatters
Cache the REST• HTTP caches can store copies of the responses  along the request response path to reduce  network traffic•...
Types of Cache• Browser Cache Stores representations locally on the computer’s hard drive• Proxy Cache Corporates and ISPs...
Controlling Cache• HTTP headers can be used to control cache  behaviors• HTTP provides method the avoid staleness of  cach...
Controlling Cache Behavior
Summary• HTTP is a powerful application level protocol• Built to serve the worlds largest information  system• REST provid...
My Blog                                                           ASP.NET Web APIshttp://bit.ly/roadan                    ...
Rest assured
Rest assured
Upcoming SlideShare
Loading in...5
×

Rest assured

1,778

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,778
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
21
Comments
0
Likes
2
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 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
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×