Как я могу вернуть местоположение созданного http ресурса вместе с сообщением о состоянии ответа в JAX-RS? - PullRequest
0 голосов
/ 19 сентября 2018

Я работаю над веб-службой, которая работает следующим образом: enter image description here

  1. Клиент отправляет запрос POST серверу REST с некоторыми параметрами.

  2. Сервер REST обрабатывает запрос, вставляет данные в таблицу, создает новую строку с идентификатором.

  3. Сервер RESTзатем отправляет запрос на FileServer для загрузки ссылки, и FileServer возвращает uploadLink на сервер REST.

  4. Наконец, сервер REST возвращает местоположение вновь созданного ресурса с идентификатором, начиная с шага2, клиенту.

Это обработчик POST:

@POST
public Response postFilesByCustomerId(AbstractPrincipal user, Attachment attachment) {
    Integer id = new AttachmentService(user).createNew(attachment);
    String uploadLink = FileServer.getUploadLinkForFile(user.getDB(), attachment.getUuid(), attachment.getFileName());
    return Response.created(LinkBuilder.getUriFromResource(this.getClass(), id)).build();
}

Когда я отправляю запрос POST от клиента, я получаю этот ответ: enter image description here

Мой вопрос: как включить uploadLink в ответ?Буду очень признателен за любые предложения или советы, java noob здесь.

1 Ответ

0 голосов
/ 19 сентября 2018

Как включить uploadLink в ответ?

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

URI uri = LinkBuilder.getUriFromResource(this.getClass(), id);
return Response.created(uri).entity(uploadLink).build();

Если вы хотите добавить заголовок Link, попробуйте следующее:

return Response.created(uri).link(uploadLink, "upload").build();
...