Ich verstehe den Vorteil von HATEOAS für APIs nicht, die von Programmen verwendet werden sollen (im Gegensatz zu Menschen, die Ihre API direkt durchsuchen). Sicher, der Kunde ist nicht an ein URL-Schema gebunden, aber er ist an ein Datenschema gebunden, das in meinen Augen dasselbe ist.
Angenommen, ich möchte einen Artikel in einer Bestellung anzeigen, ich habe die Bestell-URL bereits gefunden oder kenne sie bereits.
HATEOAS:
order = get(orderURL);
item = get(order.itemURL[5]);
Nicht-HATEOAS:
order = get(orderURL);
item = get(getItemURL(order,5));
Im ersten Modell muss ich wissen, dass das Auftragsobjekt ein itemURL-Feld hat. Im zweiten Modell muss ich wissen, wie man eine Artikel-URL erstellt. In beiden Fällen muss ich vorher etwas "wissen", also was macht HATEOAS eigentlich für mich?
get(orderURL);
sollte es dir sagenthe fact that the order object has an itemURL field
.