More REST, Less ROT
I'm encouraged that my recent presentation at Codestock has sparked some interest. Here are some comments on the "What we need is more REST and less ROT" slide deck and my thinking behind the material...
- The point of the talk was to "jolt" attendees into thinking differently about common Web implementation details (e.g. type marshaling/object serialization)
- The slides themselves are "prompts" for the presentation and are missing quite a few nuances/details (sorry, no recording is available).
- Due to time constraints I left out example designs based on HTML (only used XML and JSON examples in the slides)
- The bottom-line message of the talk was to create messages that include not just "what" (data), but also "how" (hypermedia).
Some additional things to consider
- Much of the work I am doing in "designing hypermedia" is driven by Fielding's " REST APIs must be hypertext-driven" blog post from Oct 2008. This is not to say what I am doing is necessarily what Roy had in mind, just that it his work outlining items to consider when crafting APIs provided important inputs to my work in this area.
- The PHACTOR example is just that; an example. Rather academic, too[g]. It has been used to illustrate the hypermedia factors model. I have demo apps using it, but it is not very interesting for anything else; just a teaching/conversation piece.
- The Maze+XML example was built to show that you can create a "domain-specific" hypermedia format (similar to VoiceXML and write clients against it. in this case there are multiple implementations of "bots" that run the maze successfully.
- The Collection.JSON example was built to show you can create a "generic" hypermedia format (ala AtomPub) and write clients that can automatically understand not only CRUD operations, but also templated search options (e.g. HTML.FORMS).
- I am working on an HTML-based hypermedia design that relies on (@id, @name, @rel, and @class) to carry all the domain-specific information. I have an open project dubbed "ALPS" that illustrates these ideas. This will be featured at the RESTFest HackDay this year and I am most interested in hearing from folks on this project (would be really cool if you could come to the HackDay w/ your example/experiences).
- I'll be presenting a modified version (shortened) of this talk at OSCON this year. I look forward seeing folks there and getting feedback on this talk and the ideas of hypermedia design in general.
- I am currently working on a book for O'Reilly called "Designing Hypermedia APIs w/ HTML5 and Node" that explores this topic as well as works through a handful of designs and implementations (server and client). It should be available later this year.
I'd be happy to discuss this material online. Some of that discussion will likely happen on rest-discuss, but this topic may stray from the charter of the rest-discuss list (Hypermedia is my focus and that reaches across arch styles, protocols, etc.). If you wish, you can start a convo on a list I created recently: hypermedia-web. You can also write me directly, if you wish (mamund -AT- yahoo -DOT- com).