Hardresthateoas
Что такое HATEOAS?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
HATEOAS (Hypermedia As The Engine Of Application State) — принцип REST: сервер вместе с данными возвращает hyperlinks на доступные дальнейшие действия. Клиент «навигирует» по ссылкам, не зная URL'ы заранее.
GET /orders/123
{
"id": 123,
"status": "paid",
"_links": {
"self": { "href": "/orders/123" },
"cancel": { "href": "/orders/123/cancel" },
"refund": { "href": "/orders/123/refund" }
}
}// Spring HATEOAS
EntityModel<Order> model = EntityModel.of(order);
model.add(linkTo(methodOn(OrderController.class).cancel(order.id())).withRel("cancel"));- Клиент видит доступные действия по presence ссылок; статус изменился → другие ссылки;
- Level 3 в Richardson Maturity Model;
- На практике редко используется в full, чаще REST level 2 (HTTP verbs + resources);
- GraphQL — другой подход; OpenAPI/Swagger — документация вместо hyperlinks.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.