Ответ
HATEOAS (Hypermedia as the Engine of Application State) — это принцип REST, где клиент взаимодействует с сервером через гипермедиа (ссылки в ответах). Это позволяет клиенту динамически обнаруживать доступные действия, уменьшая жесткую связь между клиентом и сервером.
Пример ответа с HATEOAS:
{
"id": 123,
"name": "Product X",
"price": 99.99,
"_links": {
"self": { "href": "/products/123" },
"update": { "href": "/products/123", "method": "PUT" },
"delete": { "href": "/products/123", "method": "DELETE" }
}
}
Плюсы:
- Клиент не зависит от жестко закодированных URL.
- Сервер может менять API без ломания клиентов.
- Улучшает самоописываемость API.
Минусы:
- Усложняет реализацию.
- Не все клиенты используют ссылки, предпочитая жесткие схемы.
Используется в Spring HATEOAS, HAL, JSON:API.