#spring #spring-data-rest #spring-hateoas
#весна #spring-data-rest #spring-hateoas
Вопрос:
У меня есть приложение angular, запрашивающее данные из серверной части Spring Boot с помощью Spring Data Rest. Запросы к репозиториям генерируют ответы со структурой HATEOAS. Но когда я спрашиваю у контроллера Spring MVC, ответ — безразличная структура (естественная).
Есть ли какой-либо пример, в котором я могу добиться такой же структуры по конкретному запросу контроллера? Я считаю, что я должен реализовать HATEOAS, но не видел ни одного примера.
Ответ №1:
Официальный пример можно найти здесь.
Возвращаемое значение вашего метода контроллера должно быть обернуто в EntityModel
or CollectionModel
, поэтому JSON должен быть в формате HAL.
@PostMapping("/orders")
ResponseEntity<EntityModel<Order>> newOrder(@RequestBody Order order) {
order.setStatus(Status.IN_PROGRESS);
Order newOrder = orderRepository.save(order);
return ResponseEntity //
.created(linkTo(methodOn(OrderController.class).one(newOrder.getId())).toUri()) //
.body(assembler.toModel(newOrder));
}