I’m kinda busy with a bunch of things on my plate, but felt I had to chime in on the latest calls for a RESTful description language ala WADL.

Aristotle’s response struck a chord;

[…] there isn’t much to describe; there aren’t any methods or signatures thereof to document, since access to resources is uniform and governed by the verbs defined in RFC 2616 (in the case of HTTP, anyway)

Right-o, though it might be helpful to rephrase that last bit as “since access to resources is through the *same* uniform interface”, because that’s the whole point of REST: all services expose the same interface. This is what provides the majority of its loose coupling, and is the principle differentiator from RPC.

So if you’re writing (or generating) contract/interface-level code which can’t late-bind to all resources, everywhere, you’re not doing REST (10 kudos to whomever identifies the specific constraint being violated).

Cut the cord already! RPC is dead. You’re not in Kansas anymore.

Trackback

8 comments until now

  1. “10 kudos to whomever identifies the specific constraint being violated)”

    Hypermedia as the engine of application state. (We need a shorter way to say that.)

  2. Bingo!

  3. Pete — “Hypermedia as the engine of application state. (We need a shorter way to say that.)”

    HATE OAS?

  4. I posted a response on my blog: http://tinyurl.com/2f9xeq

  5. I agree that a description language for REST is a bad idea.

    I tried to describe a declarative data (microformat?) approach to solving the same type of problem. I’ve called the idea signposts to indicate that the data provides direction that is also machine processable.

    See http://johnheintz.blogspot.com/2007/05/does-rest-need-dl.html

    John

  6. Andrew Wahbe

    Right… but there is a big fat contract in the way of a hypermedia format specification that is key to the REST interaction. The contract is negotiated in the HTTP interaction by way of the accept header. So while all services expose the same interface, all clients do not expose the same interface. We get away with it in UI-focused services by using standard formats like HTML, SVG, VoiceXML, etc. But for machine to machine interaction, its not clear what one should use, or if a “standard” markup is even possible. Saying “use XLink” doesn’t cut it. You need to be able to express all forms of HTTP interactions (all verbs and headers). I think this is the biggest roadblock to RESTs success right now. Don’t we need to get people to move their focus from WADL to a standard M2M markup (or at least a framework for building markup focused on a specific market)?

  7. Sure, Andrew. RDF is one attempt at that, offering a standardized data model and a handful of standardized serializations thereof (RDF/XML, Turtle). I don’t think that’s holding up REST’s success at all though.

  8. […] REST, WADL, forest, trees So if you’re writing (or generating) contract/interface-level code which can’t late-bind to all resources, everywhere, you’re not doing REST […] […]

Add your comment now