Строка Hateoas ссылка на метод void


Я работаю с Spring Hateoas для стандартов HAL в HTTP-ответе. У меня есть метод HTTP DELETE в моем контроллере, который ничего не возвращает (void). И в ответе для той же сущности я хочу предоставить ссылку на удаление ресурса. Я пытался сделать со следующим кодом, но он дает ошибку

Не удается разрешить метод linkTo (void)

    resource.add(linkTo(
            methodOn(DokumenteController.class)
                    .loeschenEinDokument(filenetDokumentZuordnung.getDokumentId()))
                            .withRel("download"));

Есть ли способ добавить ссылку на метод, который возвращает void?

2 3

2 ответа:

Не возвращайтесь void. Вместо этого верните ResponseEntity<Void>.

Скорее всего, вам все равно придется установить некоторые заголовки, даже если вы не возвращаете тело сообщения. Или вы хотите установить код состояния.

Если ваш контроллер имеет соответствующее отображение запроса, вы также можете сделать следующее:

 resource.add(linkTo(DokumenteController.class)
             .slash(filenetDokumentZuordnung.getDokumentId())
             .withRel("download"));

Я сомневаюсь, что это возможно связать с DELETE маршрутом.

Hateoas позволяет обнаружить ваш REST API, но REST API означает, что для удаления документа, доступного в /document/42, Вы должны вызвать тот же маршрут, но с помощью метода DELETE.

В принципе, вам не нужно делать ссылку на ваш метод удаления, потому что подразумевается, что это способ удалить ваш документ.