| The main problem with REST is Roy Fielding's communication style. Here's a quote from a 2008 blog post: Apparently, I use words with too many syllables when comparing design trade-offs for network-based applications. I use too many general concepts, like hypertext, to describe REST instead of sticking to a concrete example, like HTML. I am supposed to tell them what they need to do, not how to think of the problem space. A few people even complained that my dissertation is too hard to read. Imagine that! Yeah, Roy. It's called being an effective communicator. Effective communicators include stories and concrete examples to help bring the audience along with them, instead of lengthy discussions of abstract concepts. Readers shouldn't have to perform exegesis on your slideshow and blog to get even a vague understanding of what you're trying to get at. To be clear, any difficulty with REST in practice is a direct result of an underspecified concept without a clearly defined RFC as it relates to HTTP. Fielding didn't define anything about REST in terms of HTTP. All of REST, as it relates to HTTP, has been an application of what other people think he meant. Nowhere in Fielding's 2002 academic paper[0], his 2008 talk at ApacheCon[1], or his blog[2] does Fielding have clear examples or thoughts on the kinds of specific details that Web developers often struggle with. Fielding, in my estimation, seems principally concerned with three things with regard to REST: 1) Every important resource has its own URI. 2) All interactions against that URI should be stateless and cacheable: all application state that is specific to the user should live on the client (e.g., local storage for browsers), and all shared state should live on the server. 3) Interaction with that URI should be the same regardless of client (browser, mobile app, etc.). Everything else is left as an exercise for the reader. [0] https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm [1]
https://www.slideshare.net/royfielding/a-little-rest-and-rel... [2] https://roy.gbiv.com/untangled/category/web-architecture |
(Ironically?) I've found this same problem to be one of the best reasons to avoid WSDL/SOAP. Too much pie-in-the-sky waffle, not enough pragmatic real-life flavour.