SlideShare a Scribd company logo
1 of 38
REST
Assured
Yaniv Rodenski
Senior Consultant, Sela Group

http://blogs.microsoft.co.il/blogs/roadan
Twitter: @YRodenski
A brief history of The Web API




                        March 2012
                                               ASP.NET is
                                               Open Source
6 Preview Versions
                     Fab 2012
                                      ASP.NET Web
                                      API (Beta)
         October 2010
                                WCF Web API
                                on Code Plex
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
• Caching
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
SOAP Service calls

• Request




• Response
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
HTTP Service calls
• Request



• Response
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
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
Richardson maturity model
• Leonard Richardson’s maturity model
  describes four levels of service maturity


                       Hypermedia

                          Http

                        Resources
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
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

http://myfooty.com/players/henrique
http://myfooty.com/players/neymar




                                                      Hypermedia

                                                         Http

                                                      Resources
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 their consuming life
  forms:




      Carbon based            Silicon based
         Web Pages              Web Services
RMM – Level two services
• Level two services use HTTP mechanisms
  properly:
  – Verbs
  – Status codes
  – Headers



                                      Hypermedia

                                           Http

                                       Resources
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
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 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
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
Level Two Service
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
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
Hypermedia Application
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
OData paging
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
Using Media Formatters
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
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
Controlling Cache
• HTTP headers can be used to control cache
  behaviors
• HTTP provides method the avoid staleness of
  cached data
  – Expiration
  – Validation
Controlling Cache Behavior
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
My Blog                                                           ASP.NET Web APIs
http://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 Architectures
Roy Fielding
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
                                                                  REST in practice (Book)
                                                                  http://restinpractice.com/default.aspx
Debugging the web with Fiddler
Ido Flatow
http://scc.sela.co.il/SCC/Pages/ShowLecture/ShowLecture.aspx?lectureId=642

More Related Content

What's hot

What's hot (20)

An Introduction To Automated API Testing
An Introduction To Automated API TestingAn Introduction To Automated API Testing
An Introduction To Automated API Testing
 
B4USolution_API-Testing
B4USolution_API-TestingB4USolution_API-Testing
B4USolution_API-Testing
 
Testing microservices with rest assured
Testing microservices with rest assuredTesting microservices with rest assured
Testing microservices with rest assured
 
What is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | EdurekaWhat is REST API? REST API Concepts and Examples | Edureka
What is REST API? REST API Concepts and Examples | Edureka
 
API Testing for everyone.pptx
API Testing for everyone.pptxAPI Testing for everyone.pptx
API Testing for everyone.pptx
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 
Api Testing
Api TestingApi Testing
Api Testing
 
Api testing
Api testingApi testing
Api testing
 
Postman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenarioPostman. From simple API test to end to end scenario
Postman. From simple API test to end to end scenario
 
Api testing
Api testingApi testing
Api testing
 
Test Design and Automation for REST API
Test Design and Automation for REST APITest Design and Automation for REST API
Test Design and Automation for REST API
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 
Understanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
introduction about REST API
introduction about REST APIintroduction about REST API
introduction about REST API
 
API Testing
API TestingAPI Testing
API Testing
 
REST API
REST APIREST API
REST API
 
API Testing: The heart of functional testing" with Bj Rollison
API Testing: The heart of functional testing" with Bj RollisonAPI Testing: The heart of functional testing" with Bj Rollison
API Testing: The heart of functional testing" with Bj Rollison
 
Api Testing
Api TestingApi Testing
Api Testing
 
Rest API Testing
Rest API TestingRest API Testing
Rest API Testing
 

Viewers also liked

Automation framework
Automation framework Automation framework
Automation framework
ITeLearn
 
WSO2 Test Automation Framework : Approach and Adoption
WSO2 Test Automation Framework : Approach and AdoptionWSO2 Test Automation Framework : Approach and Adoption
WSO2 Test Automation Framework : Approach and Adoption
WSO2
 
Automate WebServices Rest API (testing) using Java
Automate WebServices Rest API (testing) using JavaAutomate WebServices Rest API (testing) using Java
Automate WebServices Rest API (testing) using Java
ayman diab
 

Viewers also liked (20)

Creating a Java EE 7 Websocket Chat Application
Creating a Java EE 7 Websocket Chat ApplicationCreating a Java EE 7 Websocket Chat Application
Creating a Java EE 7 Websocket Chat Application
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlow
 
Time to REST: testing web services
Time to REST: testing web servicesTime to REST: testing web services
Time to REST: testing web services
 
Testing web services
Testing web servicesTesting web services
Testing web services
 
Web service testing_final.pptx
Web service testing_final.pptxWeb service testing_final.pptx
Web service testing_final.pptx
 
Autoscalable open API testing
Autoscalable open API testingAutoscalable open API testing
Autoscalable open API testing
 
Coherent REST API design
Coherent REST API designCoherent REST API design
Coherent REST API design
 
Heleen Kuipers - presentatie reinventing organisations
Heleen Kuipers - presentatie reinventing organisationsHeleen Kuipers - presentatie reinventing organisations
Heleen Kuipers - presentatie reinventing organisations
 
Automation framework
Automation framework Automation framework
Automation framework
 
WSO2 Test Automation Framework : Approach and Adoption
WSO2 Test Automation Framework : Approach and AdoptionWSO2 Test Automation Framework : Approach and Adoption
WSO2 Test Automation Framework : Approach and Adoption
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
Auto-scaled Concourse CI on AWS w/o BOSH
Auto-scaled Concourse CI on AWS w/o BOSHAuto-scaled Concourse CI on AWS w/o BOSH
Auto-scaled Concourse CI on AWS w/o BOSH
 
Automate WebServices Rest API (testing) using Java
Automate WebServices Rest API (testing) using JavaAutomate WebServices Rest API (testing) using Java
Automate WebServices Rest API (testing) using Java
 
TestNG Framework
TestNG Framework TestNG Framework
TestNG Framework
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.
 
testng
testngtestng
testng
 
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Automation testing API in Java
Automation testing API in JavaAutomation testing API in Java
Automation testing API in Java
 
Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)Java API for XML Web Services (JAX-WS)
Java API for XML Web Services (JAX-WS)
 
Webservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview QuestionsWebservices(or)SoapUI Interview Questions
Webservices(or)SoapUI Interview Questions
 

Similar to Rest assured

REST and the Hypermedia Constraint
REST and the Hypermedia ConstraintREST and the Hypermedia Constraint
REST and the Hypermedia Constraint
Inviqa
 
HATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from RESTHATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from REST
elliando dias
 
05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver
tarensi
 
Web technologies lesson 1
Web technologies   lesson 1Web technologies   lesson 1
Web technologies lesson 1
nhepner
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
WSO2
 

Similar to Rest assured (20)

What's the origin of REST architectural style?
What's the origin of REST architectural style?What's the origin of REST architectural style?
What's the origin of REST architectural style?
 
REST and the Hypermedia Constraint
REST and the Hypermedia ConstraintREST and the Hypermedia Constraint
REST and the Hypermedia Constraint
 
Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016Web Landscape - updated in Jan 2016
Web Landscape - updated in Jan 2016
 
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid RahimianAPI Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
API Design, A Quick Guide to REST, SOAP, gRPC, and GraphQL, By Vahid Rahimian
 
Mini-Training: Let's have a rest
Mini-Training: Let's have a restMini-Training: Let's have a rest
Mini-Training: Let's have a rest
 
HATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from RESTHATEOAS: The Confusing Bit from REST
HATEOAS: The Confusing Bit from REST
 
05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver05.m3 cms list-ofwebserver
05.m3 cms list-ofwebserver
 
Web technologies lesson 1
Web technologies   lesson 1Web technologies   lesson 1
Web technologies lesson 1
 
APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013APIdays San Francisco, 06/22/2013
APIdays San Francisco, 06/22/2013
 
From Web APIs to Cross-Device Web Sites
From Web APIs to Cross-Device Web SitesFrom Web APIs to Cross-Device Web Sites
From Web APIs to Cross-Device Web Sites
 
www | HTTP | HTML - Tutorial
www | HTTP | HTML - Tutorialwww | HTTP | HTML - Tutorial
www | HTTP | HTML - Tutorial
 
Web
WebWeb
Web
 
WP Chap 1 & 2.pptx
WP Chap 1 & 2.pptxWP Chap 1 & 2.pptx
WP Chap 1 & 2.pptx
 
REST != WebAPI
REST != WebAPIREST != WebAPI
REST != WebAPI
 
Html
HtmlHtml
Html
 
Restful风格ž„web服务架构
Restful风格ž„web服务架构Restful风格ž„web服务架构
Restful风格ž„web服务架构
 
Role of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EIRole of Rest vs. Web Services and EI
Role of Rest vs. Web Services and EI
 
Web Topics
Web TopicsWeb Topics
Web Topics
 
1. web technology basics
1. web technology basics1. web technology basics
1. web technology basics
 
Building Restful Applications Using Php
Building Restful Applications Using PhpBuilding Restful Applications Using Php
Building Restful Applications Using Php
 

Recently uploaded

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Rest assured

  • 1. REST Assured Yaniv Rodenski Senior Consultant, Sela Group http://blogs.microsoft.co.il/blogs/roadan Twitter: @YRodenski
  • 2. A brief history of The Web API March 2012 ASP.NET is Open Source 6 Preview Versions Fab 2012 ASP.NET Web API (Beta) October 2010 WCF Web API on Code Plex
  • 3.
  • 4. State of the web • Today the web faces new challenges: – Internet scale applications – Cloud operating systems
  • 5. State of the web • Today the web faces new challenges: – Even more complex integrations
  • 6. State of the web • Today the web faces new challenges: – Broader reach of clients
  • 7. Agenda • Basic terminology • REST via the ASP.NET Web API – Richardson maturity model – Hypermedia Patterns – Media types • Caching
  • 8. 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
  • 9. SOAP Service calls • Request • Response
  • 10. 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
  • 11. HTTP Service calls • Request • Response
  • 12. 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
  • 13. 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
  • 14. Richardson maturity model • Leonard Richardson’s maturity model describes four levels of service maturity Hypermedia Http Resources
  • 15. 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
  • 16. 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 http://myfooty.com/players/henrique http://myfooty.com/players/neymar Hypermedia Http Resources
  • 18. 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
  • 19. RMM – Level two services • Level two services use HTTP mechanisms properly: – Verbs – Status codes – Headers Hypermedia Http Resources
  • 20. 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
  • 21. Using HTTP verbs for CRUD
  • 22. 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
  • 23. 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
  • 25. 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
  • 26. 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
  • 28. 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
  • 30. 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
  • 32. 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
  • 33. 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
  • 34. Controlling Cache • HTTP headers can be used to control cache behaviors • HTTP provides method the avoid staleness of cached data – Expiration – Validation
  • 36. 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
  • 37.
  • 38. My Blog ASP.NET Web APIs http://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 Architectures Roy Fielding http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm REST in practice (Book) http://restinpractice.com/default.aspx Debugging the web with Fiddler Ido Flatow http://scc.sela.co.il/SCC/Pages/ShowLecture/ShowLecture.aspx?lectureId=642

Editor's Notes

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