20 April 2005

Respresentational State

I was just reading a page on RESTWiki about HowSoapComparesToRest. Despite the title, about half the page is devoted to a discussion of what the State in REpresentational State Transfer is.

Reading through that discussion and seeing people trying to get a handle on what resource's state is transferred when you do a POST to certain kinds of resources or the fact that you might transfer the state of a resource that has no name, I suddenly had the thought that its not so important to know what state is -- its what it's not that's important. In fact, its really not so much about the state at all -- its about the representation. In a RESTful system, (in a very general sense) you dont move objects (resources) around, you move facsimiles (representations) of those objects (resources) around.

Why is this important? I'm not sure I know at this point. I just know that after several years of thinking and reading about REST, this is the first time I've thought about it this way.

1 comment:

Anonymous said...

My conception of a given RESTful http application: there exists a network of all possible URLs the application can generate. These URLs are hyperlinked to each other (and possibly to URLs outside this particular application). Anyway, as I click various URLs in my browser, it is transferred from displaying a representation at one URL to another representation at another URL.

So it's like a big DFA (Deterministic Finite Automata) within which I jump around.

In design I spend some time ensuring I've defined all the possible URLs necessary for the application and depicting them in a diagram.