REST was never about CRUD
The main problem with REST is Roy Fielding&#x27;s communication style.<p>Here&#x27;s a quote from a 2008 blog post:<p><i>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!</i><p>Yeah, Roy. It&#x27;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&#x27;t have to perform exegesis on your slideshow and blog to get even a vague understanding of what you&#x27;re trying to get at.<p>To be clear, any difficulty with REST in practice is a direct result of an underspecified concept without a clearly defined RFC <i>as it relates to HTTP</i>. Fielding didn&#x27;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.<p>Nowhere in Fielding&#x27;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.<p>Fielding, in my estimation, seems principally concerned with three things with regard to REST:<p>1) Every important resource has its own URI.<p>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.<p>3) Interaction with that URI should be the same regardless of client (browser, mobile app, etc.).<p>Everything else is left as an exercise for the reader.<p>[0] <a href="https:&#x2F;&#x2F;www.ics.uci.edu&#x2F;~fielding&#x2F;pubs&#x2F;dissertation&#x2F;top.htm" rel="nofollow">https:&#x2F;&#x2F;www.ics.uci.edu&#x2F;~fielding&#x2F;pubs&#x2F;dissertation&#x2F;top.htm</a><p>[1]
<a href="https:&#x2F;&#x2F;www.slideshare.net&#x2F;royfielding&#x2F;a-little-rest-and-relaxation" rel="nofollow">https:&#x2F;&#x2F;www.slideshare.net&#x2F;royfielding&#x2F;a-little-rest-and-rel...</a><p>[2] <a href="https:&#x2F;&#x2F;roy.gbiv.com&#x2F;untangled&#x2F;category&#x2F;web-architecture" rel="nofollow">https:&#x2F;&#x2F;roy.gbiv.com&#x2F;untangled&#x2F;category&#x2F;web-architecture</a>