Tôi không hiểu lợi ích của HATEOAS đối với các API dành cho các chương trình sử dụng (trái ngược với con người trực tiếp duyệt API của bạn). Chắc chắn, khách hàng không bị ràng buộc với một lược đồ URL nhưng họ bị ràng buộc với một lược đồ dữ liệu giống với suy nghĩ của tôi.
Ví dụ: giả sử tôi muốn xem một mục trên đơn hàng, giả sử tôi đã phát hiện hoặc biết URL đơn hàng.
NGÀY:
order = get(orderURL);
item = get(order.itemURL[5]);
không phải HATEOAS:
order = get(orderURL);
item = get(getItemURL(order,5));
Trong mô hình đầu tiên tôi phải biết thực tế là đối tượng đặt hàng có trường itemURL. Trong mô hình thứ hai, tôi phải biết cách tạo một URL mục. Trong cả hai trường hợp, tôi phải "biết" điều gì đó trước thời hạn, vậy HATEOAS thực sự đang làm gì cho tôi?
get(orderURL);
nên nói cho bạnthe fact that the order object has an itemURL field
.