Words are only useful if their meaning is understood by the listener. I haven’t had much (or indeed any) success trying to make others use the word RESTful properly.
Yeah, the problem with search is the arbitrariness of the search queries. If it’s a general text search (e.g., Google), then a GET to a /search endpoint with a query (what Google does) is very RESTful. If it’s a bunch of key-value pairs, e.g., /search?givenname=ted&familyname=young&pedantic=true then it’s more difficult from a discovery point of view. That’s where some of the template stuff comes in.
I’ve been trying to promote the term RESTless to describe rpc-over-HTTP apis.
I’d love to hear your case for RPC-style approaches to HTTP APIs.
My impression is that HATEOAS is essential to REST. Without it, we’re talking about an RPC API in disguise. Would you agree with this statement?
I would, yes. It’s right up front: http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
But what does RESTful actually actually mean?
I’ve sadly given up trying to push this one.
Words are only useful if their meaning is understood by the listener. I haven’t had much (or indeed any) success trying to make others use the word RESTful properly.
The thing that always seems to be omitted in these examples is how you represent a search engine RESTfully.
Yeah, the problem with search is the arbitrariness of the search queries. If it’s a general text search (e.g., Google), then a GET to a /search endpoint with a query (what Google does) is very RESTful. If it’s a bunch of key-value pairs, e.g., /search?givenname=ted&familyname=young&pedantic=true then it’s more difficult from a discovery point of view. That’s where some of the template stuff comes in.