Je ne comprends pas les avantages d'HATEOAS pour les API destinées à être utilisées par des programmes (par opposition aux humains qui parcourent directement votre API). Bien sûr, le client n'est pas lié à un schéma d'URL, mais il est lié à un schéma de données, ce qui est la même chose dans mon esprit.
Par exemple, supposons que je souhaite afficher un article sur une commande, supposons que j'ai déjà découvert ou connu l'URL de la commande.
HATEOAS:
order = get(orderURL);
item = get(order.itemURL[5]);
non HATEOAS:
order = get(orderURL);
item = get(getItemURL(order,5));
Dans le premier modèle, je dois savoir que l'objet de commande a un champ itemURL. Dans le deuxième modèle, je dois savoir comment construire une URL d'élément. Dans les deux cas, je dois "savoir" quelque chose à l'avance, alors que fait HATEOAS pour moi?
get(orderURL);
devrait vous le direthe fact that the order object has an itemURL field
.