Khi xây dựng dịch vụ REST với ràng buộc HATEOAS , rất dễ dàng để quảng cáo sự tồn tại của tài nguyên thông qua liên kết. Bạn tạo một GET
gốc của trang web của tôi và tôi trả lời với tài liệu gốc liệt kê tất cả các tài nguyên cấp đầu tiên:
{
users: { href: "/users" }
questions { href: "/questions" }
}
Các khách hàng hiểu cách đọc các href
giá trị này có thể thực hiện GET
các yêu cầu trên đó và khám phá tất cả các tài nguyên hiện có trong ứng dụng.
Điều này hoạt động tốt cho các kịch bản tra cứu cơ bản, nhưng không cho biết liệu tài nguyên có thể truy vấn được hay không. Ví dụ, có thể hợp lý để thực hiện:
GET /users?surname=Smith
Có bất kỳ định dạng nào có thể diễn tả khả năng truy vấn này với đủ thông tin mà khách hàng có thể tạo thành một truy vấn mạch lạc mà không cần kiến thức trước về tài nguyên không?
Ngoài ra, có cách nào để thể hiện rằng khách hàng được phép thực hiện một POST
vị trí nhất định với một vị trí dự kiến. Ví dụ: khách hàng có thể thực hiện các thao tác sau để tạo tài nguyên câu hỏi mới:
POST /questions
{
title: "Are there strategies for discovering REST services using HATEOAS?",
body: "When building a REST service with the HATEOAS constraint, it's very..."
}
Khi sử dụng HTML làm định dạng cho tiêu dùng của con người, chúng ta có thể thể hiện rất nhiều điều này thông qua việc sử dụng các biểu mẫu và lời nhắc bằng văn bản để cho phép con người khám phá các hoạt động mà họ được phép thực hiện trên một dịch vụ.
Có định dạng nào có khả năng tương tự cho khách hàng không?