Hi -- Robert Walker wrote: > Amita Bhatkhande wrote: >> I have read about REST, but never really understood meaning of >> 'Representational State Transfer'. I tried to read Fielding's >> dissertation, but did not understand this term and why has he used it. >> What does it mean? Which state? What transfer? > > I'm not sure anyone knows why Fielding used this term. I suppose he had > to call it something, so that's what he chose. > > However, I'll try to explain it as I understand it: > > Representational: > The web consists of resources in the form of web pages that are > represented using a Uniform Resource Identifier (URI). REST extends this > definition to refer to other types of resources of an application (i.e. > database tables). Which, can also be represented using a URI. > http://example.com/posts/1 represents the first Post resource in the > posts collection.
A resource in the REST sense isn't anything as concrete as a database table, though. It's more conceptual. As Fielding says: "The resource is not the storage object. The resource is not a mechanism that the server uses to handle the storage object." > State: > This is the current state of the resources. > > Transfer (or more precisely State Transfer): > The act of modifying the current state of the resources. Adding a new > one, modifying an existing one, deleting an existing one, etc. > > REST defines a convention of using HTTP to both represent and change the > state of resources. That's a close as I can come to defining > "Representational State Transfer." My nutshell take on it is something like this: A given system gives and receives representations of resources. A resource is a very high-level construct; a representation is more specific, and has a content-type and so forth. Resources don't. (Even more low-level are matters of storage, which may vary and which are not, themselves, either resources or representations.) A resource is always in a given state. Resource states are altered via the exchange of representations. So if I want to correct the spelling of my name on a site, I submit a representation of my profile with the new spelling (probably in the form of a Web form). If I want to make sure it's OK, I request a representation (probably in the form of an HTML document) to inspect. I've written a bit more about this on these blog posts: http://dablog.rubypal.com/2008/3/23/splitting-hairs-over-resource http://dablog.rubypal.com/2008/4/24/splitting-hairs-over-resource-part-2 specifically in a Rails context. (Wow, was that more than a year ago?) David -- David A. Black / Ruby Power and Light, LLC Ruby/Rails consulting & training: http://www.rubypal.com Now out in PDF: The Well-Grounded Rubyist (http://manning.com/black2) "Ruby 1.9: What You Need To Know" Envycasts with David A. Black http://www.envycasts.com --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---