Nie rozumiem korzyści dla HATEOAS dla interfejsów API przeznaczonych do użytku przez programy (w przeciwieństwie do ludzi przeglądających interfejs API bezpośrednio). Jasne, że klient nie jest powiązany ze schematem adresu URL, ale jest związany ze schematem danych, co jest moim zdaniem tym samym.
Załóżmy na przykład, że chcę wyświetlić element zamówienia, załóżmy, że odkryłem lub znam już adres URL zamówienia.
HATEOAS:
order = get(orderURL);
item = get(order.itemURL[5]);
nienawiści nienawiści:
order = get(orderURL);
item = get(getItemURL(order,5));
W pierwszym modelu muszę wiedzieć, że obiekt zamówienia ma pole itemURL. W drugim modelu muszę wiedzieć, jak skonstruować adres URL elementu. W obu przypadkach muszę „wiedzieć” coś z wyprzedzeniem, więc co HATEOAS faktycznie dla mnie robi?
get(orderURL);
powinienem ci powiedziećthe fact that the order object has an itemURL field
.