Есть ли способ получить тело запроса с запросом GET? - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть этот API:

@Path("test")
@GET
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
public Parameter performTest(Parameter in) {
    System.out.println(in);
}

, но всегда возвращает NULL.Я могу изменить @GET на @POST, и это работает, но я на самом деле не выполняю создание или обновление, поэтому использование записи кажется странным.

Есть ли способ получить тело с запросом GET с использованием джерси?

1 Ответ

0 голосов
/ 03 декабря 2018

TL; DR Правильное решение - использовать POST.


"Я могу изменить @GET на @POST, и это работает, но я не совсемвыполнение создания или обновления с использованием сообщения кажется странным "

Почему это странно?POST не ограничивается операциями создания / обновления.

Спецификация ( RFC 7231, раздел 4.3.3. POST ) гласит:

Запросы метода POSTчто целевой ресурс обрабатывает представление, заключенное в запросе в соответствии с собственной определенной семантикой ресурса.Например, POST используется для следующих функций (среди прочих):

  • Предоставление блока данных, такого как поля, введенные в форму HTML, для процесса обработки данных;

  • Публикация сообщения на доске объявлений, в группе новостей, списке рассылки, блоге или подобной группе статей;

  • Создание нового ресурса, которыйеще не идентифицирован исходным сервером;и

  • Добавление данных к существующему представлению (ям) ресурса.

Перефразируя, POST означает "вот некоторые данные, пожалуйстаобработайте это для меня ".

Конечно," процесс "часто означает" хранить ", как при создании / обновлении, но это не единственный способ обработки данных.

В вашем случае,«процесс» означает «запустить тест с использованием этих параметров».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...