Spring Data Rest и Spring MVC hateoas

#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));
  }