SlideShare a Scribd company logo
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style
Grokking the REST Architectural Style

More Related Content

PDF
You Look Like You Could Use Some REST!
PPT
Memento: TimeGates, TimeBundles, and TimeMaps
PDF
2017 dev nexus_deconstructing_rest_security
KEY
NLTK in 20 minutes
PDF
2016 JavaOne Deconstructing REST Security
PDF
Nltk natural language toolkit overview and application @ PyCon.tw 2012
PDF
Website Latency Diagnostics
PDF
Natural Language Toolkit (NLTK), Basics
You Look Like You Could Use Some REST!
Memento: TimeGates, TimeBundles, and TimeMaps
2017 dev nexus_deconstructing_rest_security
NLTK in 20 minutes
2016 JavaOne Deconstructing REST Security
Nltk natural language toolkit overview and application @ PyCon.tw 2012
Website Latency Diagnostics
Natural Language Toolkit (NLTK), Basics

What's hot (10)

PPT
Rest full
PDF
HotPics 2021
PDF
2017 JavaOne Deconstructing and Evolving REST Security
PDF
A Network Architecture for the Web of Things
PPTX
Nltk natural language toolkit overview and application @ PyHug
PDF
Serialization in Go
PDF
Just curl it!
PDF
Covert Timing Channels using HTTP Cache Headers
PPTX
Basic IT 2 (General IT Knowledge-2)
PDF
Teach your (micro)services talk Protocol Buffers with gRPC.
Rest full
HotPics 2021
2017 JavaOne Deconstructing and Evolving REST Security
A Network Architecture for the Web of Things
Nltk natural language toolkit overview and application @ PyHug
Serialization in Go
Just curl it!
Covert Timing Channels using HTTP Cache Headers
Basic IT 2 (General IT Knowledge-2)
Teach your (micro)services talk Protocol Buffers with gRPC.
Ad

Similar to Grokking the REST Architectural Style (20)

PDF
Atom Web Services
PDF
Distribution and Publication With Atom Web Services
PDF
Grokking REST (ZendCon 2010)
PDF
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...
PDF
HTTP & HTML & Web
PDF
Hidden Gems in HTTP
PDF
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
PPT
Interoperability Fundamentals: SWORD 2
PPTX
Net_Chapter_2_ computer network-software.pptx
ODP
Starting With Php
ODP
Sword v2 at UKCoRR
ODP
PHP Training: Module 1
PPTX
HTTP1.1/2 overview
PDF
[DSBW Spring 2009] Unit 02: Web Technologies (1/2)
PDF
Introduction to the World Wide Web
PDF
Have Some Rest Building Web2.0 Apps And Services
PDF
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
PDF
REST in peace @ IPC 2012 in Mainz
PDF
HTTP 완벽가이드 1장.
PPT
Web Topics
Atom Web Services
Distribution and Publication With Atom Web Services
Grokking REST (ZendCon 2010)
Fulfilling the Hypermedia Constraint via HTTP OPTIONS, The HTTP Vocabulary In...
HTTP & HTML & Web
Hidden Gems in HTTP
IBM dwLive, "Internet & HTTP - 잃어버린 패킷을 찾아서..."
Interoperability Fundamentals: SWORD 2
Net_Chapter_2_ computer network-software.pptx
Starting With Php
Sword v2 at UKCoRR
PHP Training: Module 1
HTTP1.1/2 overview
[DSBW Spring 2009] Unit 02: Web Technologies (1/2)
Introduction to the World Wide Web
Have Some Rest Building Web2.0 Apps And Services
REST in ( a mobile ) peace @ WHYMCA 05-21-2011
REST in peace @ IPC 2012 in Mainz
HTTP 완벽가이드 1장.
Web Topics
Ad

More from Ben Ramsey (9)

PDF
Api Versioning
PDF
Desktop Apps with PHP and Titanium (ZendCon 2010)
PDF
Introduction to AtomPub Web Services
PDF
Caching with Memcached and APC
PDF
Desktop Apps with PHP and Titanium
PDF
Give Your Site a Boost with Memcache
PDF
Making the Most of HTTP In Your Apps
PDF
Around the PHP Community
PDF
Distribution and Publication With Atom Web Services
Api Versioning
Desktop Apps with PHP and Titanium (ZendCon 2010)
Introduction to AtomPub Web Services
Caching with Memcached and APC
Desktop Apps with PHP and Titanium
Give Your Site a Boost with Memcache
Making the Most of HTTP In Your Apps
Around the PHP Community
Distribution and Publication With Atom Web Services

Recently uploaded (20)

PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Encapsulation theory and applications.pdf
PPTX
Cloud computing and distributed systems.
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
cuic standard and advanced reporting.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Encapsulation_ Review paper, used for researhc scholars
Encapsulation theory and applications.pdf
Cloud computing and distributed systems.
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Review of recent advances in non-invasive hemoglobin estimation
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MIND Revenue Release Quarter 2 2025 Press Release
Digital-Transformation-Roadmap-for-Companies.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Diabetes mellitus diagnosis method based random forest with bat algorithm
Per capita expenditure prediction using model stacking based on satellite ima...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
cuic standard and advanced reporting.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
“AI and Expert System Decision Support & Business Intelligence Systems”

Editor's Notes

  • #6: Is REST about so-called “pretty” URLs? Tom Coates, who apparently made this statement at a “Future of Web Apps” summit.
  • #7: If you want to be real cool, take a pic of yourself doing this and post it to Flickr with the tag “webdevgangsign.”
  • #8: Or not RPC (remote procedure call)?
  • #9: * Representational State Transfer * Term originated in 2000 in Roy Fielding’s doctoral dissertation about the Web entitled “Architectural Styles and the Design of Network-based Software Architectures” * Not an architecture or a standard for developing web services * Not a particular format or pattern * It is a set of design principles
  • #11: There are six major constraints that define the REST architectural style.
  • #12: There are six major constraints that define the REST architectural style.
  • #13: There are six major constraints that define the REST architectural style.
  • #14: There are six major constraints that define the REST architectural style.
  • #15: The client-server relationship provides for a separation of concerns. This separation is very important to REST. IMO, it’s perhaps the most important constraint. We’re all-too-familiar with the client-server relationship, since it’s how the Web works, but it’s also what makes the other REST constraints possible and beneficial.
  • #18: What is a resource? From RFC 2396: “A resource can be anything that has identity. Familiar examples include an electronic document, an image, a service (e.g., ‘today’s weather report for Los Angeles’), and a collection of other resources. Not all resources are network ‘retrievable’; e.g., human beings, corporations, and bound books in a library can also be considered resources.” All resources share a uniform interface for the transfer of state between client and resource, consisting of - A constrained set of well-defined operations - A constrained set of content types, optionally supporting code on demand
  • #19: What is a resource? From RFC 2396: “A resource can be anything that has identity. Familiar examples include an electronic document, an image, a service (e.g., ‘today’s weather report for Los Angeles’), and a collection of other resources. Not all resources are network ‘retrievable’; e.g., human beings, corporations, and bound books in a library can also be considered resources.” All resources share a uniform interface for the transfer of state between client and resource, consisting of - A constrained set of well-defined operations - A constrained set of content types, optionally supporting code on demand
  • #20: What is a resource? From RFC 2396: “A resource can be anything that has identity. Familiar examples include an electronic document, an image, a service (e.g., ‘today’s weather report for Los Angeles’), and a collection of other resources. Not all resources are network ‘retrievable’; e.g., human beings, corporations, and bound books in a library can also be considered resources.” All resources share a uniform interface for the transfer of state between client and resource, consisting of - A constrained set of well-defined operations - A constrained set of content types, optionally supporting code on demand
  • #21: What is a resource? From RFC 2396: “A resource can be anything that has identity. Familiar examples include an electronic document, an image, a service (e.g., ‘today’s weather report for Los Angeles’), and a collection of other resources. Not all resources are network ‘retrievable’; e.g., human beings, corporations, and bound books in a library can also be considered resources.” All resources share a uniform interface for the transfer of state between client and resource, consisting of - A constrained set of well-defined operations - A constrained set of content types, optionally supporting code on demand
  • #24: Advocates claim that REST: * Provides improved response time and reduced server load due to its support for the caching of representations * Improves server scalability by reducing the need to maintain session state. This means that different servers can be used to handle different requests in a session * Requires less client-side software to be written than other approaches, because a single browser can access any application and any resource * Depends less on vendor software and mechanisms which layer additional messaging frameworks on top of HTTP * Provides equivalent functionality when compared to alternative approaches to communication * Does not require a separate resource discovery mechanism, due to the use of hyperlinks in representations * Provides better long-term compatibility and evolvability characteristics than RPC. This is due to: - The capability of document types such as HTML to evolve without breaking backwards- or forwards-compatibility - The ability of resources to add support for new content types as they are defined without dropping or reducing support for older content types. One benefit that's obvious with regards to web based applications is that a ReSTful implementation allows a user to bookmark specific \"queries\" (or requests) and allows those to be conveyed to others across e-mail, instant messages, or to be injected into wikis, etc. Thus this \"representation\" of a path or entry point into an application state becomes highly portable
  • #25: Advocates claim that REST: * Provides improved response time and reduced server load due to its support for the caching of representations * Improves server scalability by reducing the need to maintain session state. This means that different servers can be used to handle different requests in a session * Requires less client-side software to be written than other approaches, because a single browser can access any application and any resource * Depends less on vendor software and mechanisms which layer additional messaging frameworks on top of HTTP * Provides equivalent functionality when compared to alternative approaches to communication * Does not require a separate resource discovery mechanism, due to the use of hyperlinks in representations * Provides better long-term compatibility and evolvability characteristics than RPC. This is due to: - The capability of document types such as HTML to evolve without breaking backwards- or forwards-compatibility - The ability of resources to add support for new content types as they are defined without dropping or reducing support for older content types. One benefit that's obvious with regards to web based applications is that a ReSTful implementation allows a user to bookmark specific \"queries\" (or requests) and allows those to be conveyed to others across e-mail, instant messages, or to be injected into wikis, etc. Thus this \"representation\" of a path or entry point into an application state becomes highly portable
  • #26: Advocates claim that REST: * Provides improved response time and reduced server load due to its support for the caching of representations * Improves server scalability by reducing the need to maintain session state. This means that different servers can be used to handle different requests in a session * Requires less client-side software to be written than other approaches, because a single browser can access any application and any resource * Depends less on vendor software and mechanisms which layer additional messaging frameworks on top of HTTP * Provides equivalent functionality when compared to alternative approaches to communication * Does not require a separate resource discovery mechanism, due to the use of hyperlinks in representations * Provides better long-term compatibility and evolvability characteristics than RPC. This is due to: - The capability of document types such as HTML to evolve without breaking backwards- or forwards-compatibility - The ability of resources to add support for new content types as they are defined without dropping or reducing support for older content types. One benefit that's obvious with regards to web based applications is that a ReSTful implementation allows a user to bookmark specific \"queries\" (or requests) and allows those to be conveyed to others across e-mail, instant messages, or to be injected into wikis, etc. Thus this \"representation\" of a path or entry point into an application state becomes highly portable
  • #27: Advocates claim that REST: * Provides improved response time and reduced server load due to its support for the caching of representations * Improves server scalability by reducing the need to maintain session state. This means that different servers can be used to handle different requests in a session * Requires less client-side software to be written than other approaches, because a single browser can access any application and any resource * Depends less on vendor software and mechanisms which layer additional messaging frameworks on top of HTTP * Provides equivalent functionality when compared to alternative approaches to communication * Does not require a separate resource discovery mechanism, due to the use of hyperlinks in representations * Provides better long-term compatibility and evolvability characteristics than RPC. This is due to: - The capability of document types such as HTML to evolve without breaking backwards- or forwards-compatibility - The ability of resources to add support for new content types as they are defined without dropping or reducing support for older content types. One benefit that's obvious with regards to web based applications is that a ReSTful implementation allows a user to bookmark specific \"queries\" (or requests) and allows those to be conveyed to others across e-mail, instant messages, or to be injected into wikis, etc. Thus this \"representation\" of a path or entry point into an application state becomes highly portable
  • #28: Advocates claim that REST: * Provides improved response time and reduced server load due to its support for the caching of representations * Improves server scalability by reducing the need to maintain session state. This means that different servers can be used to handle different requests in a session * Requires less client-side software to be written than other approaches, because a single browser can access any application and any resource * Depends less on vendor software and mechanisms which layer additional messaging frameworks on top of HTTP * Provides equivalent functionality when compared to alternative approaches to communication * Does not require a separate resource discovery mechanism, due to the use of hyperlinks in representations * Provides better long-term compatibility and evolvability characteristics than RPC. This is due to: - The capability of document types such as HTML to evolve without breaking backwards- or forwards-compatibility - The ability of resources to add support for new content types as they are defined without dropping or reducing support for older content types. One benefit that's obvious with regards to web based applications is that a ReSTful implementation allows a user to bookmark specific \"queries\" (or requests) and allows those to be conveyed to others across e-mail, instant messages, or to be injected into wikis, etc. Thus this \"representation\" of a path or entry point into an application state becomes highly portable
  • #29: Advocates claim that REST: * Provides improved response time and reduced server load due to its support for the caching of representations * Improves server scalability by reducing the need to maintain session state. This means that different servers can be used to handle different requests in a session * Requires less client-side software to be written than other approaches, because a single browser can access any application and any resource * Depends less on vendor software and mechanisms which layer additional messaging frameworks on top of HTTP * Provides equivalent functionality when compared to alternative approaches to communication * Does not require a separate resource discovery mechanism, due to the use of hyperlinks in representations * Provides better long-term compatibility and evolvability characteristics than RPC. This is due to: - The capability of document types such as HTML to evolve without breaking backwards- or forwards-compatibility - The ability of resources to add support for new content types as they are defined without dropping or reducing support for older content types. One benefit that's obvious with regards to web based applications is that a ReSTful implementation allows a user to bookmark specific \"queries\" (or requests) and allows those to be conveyed to others across e-mail, instant messages, or to be injected into wikis, etc. Thus this \"representation\" of a path or entry point into an application state becomes highly portable
  • #30: Humans live in the world of representations. Representation, as a concept, is an attempt (arguably futile) to reach certain acceptable level of objectivity. For example, if a person wants to buy a house, that person needs to qualify for a mortgage. If that person explains to the mortgage broker that he has $50,000.00 cash available for the down payment toward purchasing the house, the broker will not go ahead and approve the mortgage, even though the quoted amount would be fully satisfactory. What the mortgage broker needs is a more objective argument that would reassure the issuer that the party asking for the mortgage does indeed have enough money for the down payment. But how is the issuer to go about obtaining the more objective proof? Certainly not by going directly into the applicant's safety vault and counting the money deposited there. Instead, the issuer is simply expecting to receive a representation of that person's balance in his bank account. That representation projects a sufficient illusion of objectivity, so that the involved parties could sufficiently relax and that the business transaction can eventually take place. In the same manner, any transaction that transpires on the web is based on the similar representational logic. The actual resource is never being touched. Instead, various representations of the said resource are being prepared, rendered, and shipped to the clients for consumption. Same as in the real world, where the mortgage issuer will never actually touch client's money, but will instead be satisfied with a mere piece of paper representing the balance, resources on the web never get to be directly manipulated by the clients.
  • #34: URIs uniquely address resources HTTP methods (GET, POST, PUT, DELETE) and content types (text/html, text/plain, etc.) provide a constrained interface All transactions are atomic HTTP provides cache control HTTP provides layering
  • #35: URIs uniquely address resources HTTP methods (GET, POST, PUT, DELETE) and content types (text/html, text/plain, etc.) provide a constrained interface All transactions are atomic HTTP provides cache control HTTP provides layering
  • #36: URIs uniquely address resources HTTP methods (GET, POST, PUT, DELETE) and content types (text/html, text/plain, etc.) provide a constrained interface All transactions are atomic HTTP provides cache control HTTP provides layering
  • #37: URIs uniquely address resources HTTP methods (GET, POST, PUT, DELETE) and content types (text/html, text/plain, etc.) provide a constrained interface All transactions are atomic HTTP provides cache control HTTP provides layering
  • #38: URIs uniquely address resources HTTP methods (GET, POST, PUT, DELETE) and content types (text/html, text/plain, etc.) provide a constrained interface All transactions are atomic HTTP provides cache control HTTP provides layering
  • #39: URIs uniquely address resources HTTP methods (GET, POST, PUT, DELETE) and content types (text/html, text/plain, etc.) provide a constrained interface All transactions are atomic HTTP provides cache control HTTP provides layering