(whoops, I wrote this a while ago and never published it)
A month or two ago I was chosen to play the part of the “REST advocate” at the SD Forum Web Services Conference in Santa Clara. For the past several years I’ve had a “REST vs. SOAP” slide in my stock Amazon Web Services presentation.
Although in reality I am not anti-SOAP or some sort of REST bigot, I do find a number of things attractive about the REST model. Since I wrote a bunch of these down in advance of the conference and didn’t get to use all of them in the limited amount of time that was available, here they are for posterity.
- REST builds on what people know — the HTTP protocol, XML, XSLT, and basic knowledge of string processing.
- REST is easy to demo — just load a URL into a browser. The results are self-evident and the mental wheels start to turn when people see this in action.
- Potential REST URLs are easy to test; again, just load them into a browser.
- REST results can be formatted for display using XSLT.
- REST output is efficient for the server to generate and efficient for the client to process.
- Almost any language and platform can easily do an HTTP GET operation.
- Developers can attack REST XML output at their own level, using the skills and tools that they know. They can use the DOM, they can use XSLT, they can use regular expressions, or they can use simple Visual Basic-style string processing (instr, left, right, mid, and the like).
So what don’t I like:
- There’s no tool or toolkit support.
- There’s no equivalent of WSDL for REST. Some people have told me that the newest version of WSDL can in fact describe a REST URL but I don’t know enough to say.