That said, this article isn't particularly faithful to REST.
That said, this article isn't particularly faithful to REST.
I'm currently working on a few large B2B APIs and it's been difficult to implement REST. The value of these APIs come from the actual work performed and not just updating the state of a few rows in a DB. I have very "business logic" heavy endpoints which take many parameters and return very different payloads. As much as I hate it, sometimes business and practicality comes before purity. :)
I actually asked for some feedback in a comment below buried somewhere: https://news.ycombinator.com/item?id=5819821
Just don't make an RPC API and call it RESTful ;)
Almost all web APIs out there aren't REST APIs because they don't respect the "driven by hypermedia" constraint which makes sense because this constraint was put in place for human users driving applications through web browsers, not for machines.
I've started to formalize a new "Web API" architecture style that takes the best of REST but leaves the requirements and constraints that don't make sense. See this blog post: http://blog.restlet.com/2013/05/02/how-much-rest-should-your...
Furthermore, if you really wanted to, HTTP does allow new verbs to be added, so...
In my mind I think of some things e.g.: google search, as a function not a resource. Trying to think about what the resource might be seems tangential to what I am trying to do.