Весенние hateoas: добавьте точное значение по ссылке - PullRequest
0 голосов
/ 09 апреля 2020

Я хочу вернуть собственную ссылку для любого объекта, который я возвращаю в списке, поэтому я делаю:

for(PetModel pet : pets){
            pet.add(linkTo(methodOn(PetController.class).getPetById(pet.getId())).withSelfRel());
}

Это дает мне:

{
"links": [
  {
    "rel": "self",
    "href": "http://localhost:8080/pet/{petId}"
  }
],
"id": 1,

было бы невозможно чтобы получить вместо http://localhost: 8080 / домашнее животное / 1 ?

1 Ответ

0 голосов
/ 09 апреля 2020

Использование .slash(pet.getId())

Link link = ControllerLinkBuilder
                .linkTo(PetController.class)
                .slash(pet.getId())
                .withSelfRel();

//Add link to singular resource
pet.add(link);

Объяснение:

  • метод linkTo() проверяет класс PetController и получает его root mapping
  • the slash() метод добавляет значение petId в качестве переменной пути ссылки
  • наконец, withSelfMethod() определяет отношение как собственную ссылку

methodOn() получает отображение метода путем создания фиктивного вызова целевого метода на прокси-контроллере. methodOn() - это способ получить отображение метода, не обязательную часть.

...