Sacrificial RabbitCode.  Art.  Perversion.  Madness.

Thursday, March 23. 2006

Kicking the RESTafarian beehive... the score thus far:


Trackbacks

No Trackbacks

Comments
Display comments as (Linear | Threaded)

I realize that this is offtopic, but your Atom 1.0 feed is not well formed:

http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fblog.jonnay.net%2Ffeeds%2Fatom10.xml
#1 Sam Ruby (Link) on 2006-03-23 12:45 (Reply)
Yikes!

Thanks.

Fixed.
#1.1 Jonnay on 2006-03-23 13:42 (Reply)
I'm not trying to make waves, I'm trying to get things done. I've spent the last 3-4 years talking about how nifty REST is as an abstract concept. I'd like to start applying those abstract concepts to reality and the only place that's relevant to the web is HTTP. Often times you'll see "REST" used in a way that means, "some concept from the REST architectural style considered from the perspective of its current implementation status as deployed on the majority of the web using HTTP." This, coincidentally, is exactly what I was talking about in the post you cited. We lack the vocabulary to have meaningful conversations about the current state of REST as applied with HTTP on the web. Every time we start to talk about it, someone says, that's not "REST". Well, okay, but can we move on and start talking about that for which we refuse to assign a term then?
#2 Ryan Tomayko (Link) on 2006-03-23 14:05 (Reply)
Please don't mis-understand. The making of waves is a GOOD thing. Whether or not I agree with the low/high definitions of REST, there is more conversation going on about what REST really means.

I think a large part of why some people don't like the lo/hi rest idea is that it focuses too much on the verbs of HTTP+REST, and not enough on the other constraints (state on client, representation of resources, etc.). That is why people are too quick to say "That isn't rest!". There is no reason why a system that responds only to GET and POST requests can't be restful. Along the same token, PUT and DELETE do nothing to make a system more restful if it maintains client state on the server.
#2.1 Jonnay on 2006-03-23 14:51 (Reply)
I never thought "hi" and "lo" were meant to specify that one was more or less RESTful than the other. I believe the original idea was simply to classify the more constrained applications of REST we see very commonly on the web vs. the more esoteric usages we see in up-and-coming applications like the Atom Publishing Protocol. Why are there so many of the first case and so few of the second? Why hasn't better support for anything not GET/POST made it into popular server and client side frameworks and libraries? (we *have* been trying, you know) Why aren't we using content negotiation? Why isn't it easier to store client state on clients? Why are people still tring to make up new URI schemes (feed://) instead of using media types properly? If you sit down and design a system based on the abstract concepts described in Roy's thesis with no knowledge of the web, what are the chances you then implement them on the web with the tools, protocols, and formats we have today and have people interop with you in an uncoordinated way? It's really not very good. This is why you don't see Yahoo! and Google using more considered forms of REST architecture. If you go outside of the verbs, media types, and client capabilities that the web has good support for today, you're lowering the adoptabitity of whatever you're designing. That's an important consideration.

Anyway, there's a gap between REST as described by Fielding and what one can reasonably expect to implement and have adopted on the web. I don't believe this says anything bad about REST or the web, it just means we need better tools on the client and server. We have a few catalysts (APP, Ajax, JSON, Microformats, etc) and I think the situation on the web is going to improve rapidly for at least the next 5-10 years. That doesn't mean I don't want a word for the RESTful web as it is today.
#3 Ryan Tomayko (Link) on 2006-03-23 22:40 (Reply)

Add Comment

E-Mail addresses will not be displayed and will only be used for E-Mail notifications

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA