Quoderat

REST design questions

February 14th, 2005

[Update: fifth and final question added] I’ve been thinking a bit about REST recently while working on a new data-oriented application. REST in its now-broadened meaning is easy to explain: pieces of data (likely XML-encoded) sit out there on the web, and you manipulate them using HTTP’s GET, PUT, and DELETE methods (practically CRUD, except that the Create and Update parts are combined into PUT). Try explaining SOAP, much less the essence of the whole WS-* family in one easy sentence like that, and you’ll see the difference.

This very simplicity should raise some alarm bells, though. RDF also has an apparently simple data model, but for RDF 1.0, at least, the model turned out to be painfully incomplete, as I found out when I implemented my RDF parsing library. Is REST hiding any of the same traps? RESTafarians point out that REST is the basis of the Web’s success, but that’s really only the GET part (and its cousin, POST). Despite WebDAV, we have very little experience using PUT and DELETE even for regular web pages, much less to maintain a data repository. Even the much-touted RESTful web services from Amazon and eBay are GET-only (and POST, in eBay’s case); in fact, many, if not most firewalls come preconfigured to block PUT and DELETE, since web admins see them mainly as security holes.

My gut feeling is that REST is, in fact, more manageable than XML-RPC or WS-* for XML on the Web, but that we have a lot of issues we’ll need to work out first. Data management is never really simple, and while WS-* makes it harder than it has to be, even the simplest REST model cannot make it trivial. I’m going to post some of my own questions about REST design from time to time in this weblog, as I think of them, and I’ll look forward to hearing from people who have already dealt with or at least thought about these problems on their own.

Here are my questions so far:

10 Responses to “REST design questions”

  1. AsynchronousBlog Says:

    Re: REST Design Questions
    Dave Megginson has posted some questions about his understanding of REST. First off, please do look beyond the “there are only 4 [HTTP] verbs” aspect of REST. “Hypermedia as the engine of application state” is hand-in-hand with Constrained Interfac…

  2. Quoderat » REST design question #1: identification Says:

    [...] Filed under: markup programming web — david @ 10:01 pm

    For my first REST design question, I’d like consider my understanding [...]

  3. Quoderat » REST design question #2: listing and discovering resources Says:

    [...] ources
    Filed under: web — david @ 11:29 am

    The second in my series of REST design questions is how to handle listing and paging, or, [...]

  4. Raw Says:

    REST feet forward
    Tim Bray has put already himself forward as a loyal oppositionist when it comes to WS-*, and is now letting James Governor do the talking: SOAP is boring, wake up Big Vendors or get niched. Predictably there was a backlash, well actually quite a well-r…

  5. Quoderat » REST design question #3: meaning of a link Says:

    [...] arkup networking web — david @ 5:50 pm

    This is the third in a series of REST design questions. The first design question asked about [...]

  6. Lost Boy Says:

    WITW Feedback
    Starting here Norm Walsh is blogging the development of his “Where in the World?” (WITW) web service. The laudable goal being to explore web services architecture and design issues by actually building something, and seeking feedback along the way. E…

  7. Quoderat » REST design question #4: how much normalization? Says:

    [...] kup networking web — david @ 10:22 pm

    Here is the fourth in a series of REST design questions: how much should the XML data files retu [...]

  8. Quoderat » REST design question #5: the “C” word (content) Says:

    [...] markup networking — david @ 2:54 pm

    The other posts in this series of REST design questions has danced around the edge of the conten [...]

  9. 42 Says:

    REST design questions
    An excellent series of 5 posts at Quoderat � REST design questions. Thanks to Tim Bray in ongoing � The WS-Pot is Boiling for the link.

  10. meint post Says:

    Next question: how to succesfully maintain a session with user authentication?