InfoQ had an interesting article out on REST based webservices. REST supplanted SOAP as the *best* webservice framework/methodology. It has been viewed as simple, small foot print, easy to develop against, and offering good performance.
BUT and its a large but, it depends on the API provider adhering to a set of best practices and understanding the thinking behind REST. And according to a Trove survey, most API providers do not understand that thinking. Many client developers complain of poor (or non-existing) documentation, bad version control and no backwards compatibility, inadequate test environments, poor domain object models and others.
A few questions the article raises as to why these webservices end up being so hard to use are:
- Code generation tools make for sloppier development
- HTTP is so flexible it doesn’t prevent mistakes
- No enforcement of code via machine readable code
My personal observation is that without contracts and required standards, development tends to sink to the lowest common denominator. Many companies with big IT staffs don’t even really understand object oriented programming, let alone REST based webservices and setting up usable/re-usable web contracts. But that’s not an easy to problem to solve globally.