There seems to be a pretty big conceptual and practical barrier of entry to HATEOAS in machine-to-machine interaction. We simply don't have examples of HATEOAS done fully. Why is HATEOAS even worth while?
What's the need for HATEOAS in machine-to-machine APIs? Existing SOAP and "REST" APIs don't really take advantage of HATEOAS for some reason. If you're observing all of the REST constraints but HATEOAS, you're may not have a RESTful architecture, but you have something tremendously useful.
The best that I can come up with is that HATEOAS will help long-term evolution of APIs, especially the type of intricate fine-grained APIs that enterprises favor. It will also help with "serendipity" - meaning that it's easier in the long run to reuse a distributed REST solution than other types of distributed solutions. While those are interesting benefits, they are really difficult to sell... I can't really sell "something good will happen later if you choose REST."
Assuming that the practical barriers of entry are removed, what practical benefits will we see?
There seems to be a pretty big conceptual and practical barrier of entry to HATEOAS in machine-to-machine interaction. We simply don't have examples of ...
... I know exactly where you are coming from with these questions ... I felt the same way until recently. I've designed several REST APIs over the last couple...
Hi Craig, That is a great summary. The key point leakage of business rules. In the absence of hyperlinks, the server will have to explain the clients the rules...
The last point really hits home for me. If I understand it correctly, as a client consuming an API that adheres to what Craig is saying, I can, for example...
Excellent explanation, you should publish that somewhere for easy reference. I think this will give me the final argument to convince my boss to give me the...
... [snip] ... Hi Chris, This was a great post. I'm looking at doing something similar for an application as well, but, having looked at the API for the Sun...
Apologies for the delayed reply. Was away from email for a bit. ... That's cool. However, that's not exactly what I meant by "verbs" in the above. To me,...
... Sorry to pick out one tiny piece of your excellent post...But... IMO, there are very very few applications/clients that can approach integration in this...
... I certainly agree with you that there are very, very few apps that *do* approach integration in this manner, but I don't agree that you can't have apps...
... Its true because stable systems are well tested. You can't test variability. ... FYI, I wasn't bashing HATEOAS. I think it is extremely useful to have ...
Excellent points. I'd like to add that following links instead of constructing URIs also enables an evolutionary change of distribution of resources across...
... How would you initially define and then evolve your XML schema in such an environment? I know Atom allows arbitrary attributes and elements in its schema...
... The snarky answer would be "what schema? we don't need no stinkin' schema" :-). If you are using XML message formats, though, schemas are pretty useful...
... Not talking about verbs, but links/relationships. Define/require your atom links in your schema so that the client is assured that the links will be there...
Good summary. A perspective helped me understand HATEOAS is to think a system as a combination of multiple state machines. These state machines are distributed...
... SOAP is stateless, but many services are not, so the WS-* architecture has to deal with some of the same problems REST deals with. You have WS-Addressing...
... Actually, I'd like to turn this question around. I've always been confused by what folks who design systems that comply with all of REST except HATEOAS...
... Wouldn't this have to be compared with a totally non-REST solution like SOAP-bad web services? If yes, then quick benefits that come to mind are a (1)a...
... A message based rather than RPC-based architecture. HTTP content-negotiation. All the HTTP caching semantics that come as a result of constrained...
I think there are multiple levels of HATEOAS: One is simple linking of information - easy to do, very obvious benefits (of course one could use a different...
... To turn this round again - I would not agree that all REST benefits are derived from links in content. ... Each principle and constraint adopted gets you...
Ok, but I'm more wondering about the specific gains folks are seeing in practice in the systems they are building. The reason I'm curious is because there are...
... Let's say you're writing a new database server based on a new theory for massively scaling megadata to the cloud. To get taken seriously you'll need ...
... So for me, some partical things come to mind. - the methods give you high level support for potential operations/scaling pain. Just knowing a system could...
... Just curious. Why not a big conneg fan? Is it that you prefer existing, well defined formats? To me, conneg seems to be one of the most powerful...