Необязательное логическое значение из конечной точки Spring всегда возвращает ноль - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть конечная точка API Spring, которая выглядит следующим образом:

 public ResponseEntity<TestObj> getCounterProposals(
      @PathVariable Long testObjId, @RequestBody(required = false) Boolean status)

Как отправить запрос, чтобы заполнить параметр status . Моя конечная точка выглядит следующим образом:

GET / api / test / {testId}

Сейчас ее значение всегда равно нулю и заполнен testId. Я посылаю запрос от Почтальона следующим образом:

enter image description here

Должен ли я обернуть логическое значение в какой-то объект DTO?

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Поскольку, как упоминали другие люди, наличие тела с запросом GET не является общепринятым. Если вам необходимо использовать @GetMapping с параметром status, который не должен отображаться в URL запроса, возможно, стоит также взглянуть на @RequestHeaders?

Например: @RequestHeader("status") Boolean status

0 голосов
/ 10 февраля 2020

У меня это работает:

@GetMapping("/greeting")
public Greeting greeting(@RequestParam(value = "name", defaultValue = "World") String name, @RequestBody Boolean status) {

    System.out.println(status);
    return new Greeting(counter.incrementAndGet(), String.format(template, name));
}

И в Почтальоне, вызывающем конечную точку:

enter image description here

Мы проходим @RequestParam name в URL ?name=David и логическое status в теле.

И работает правильно.

Обратите внимание, что выбрана вкладка Тело и тип JSON. (Сразу после GraphQL BETA) и переданное значение равно true. Не status - true как form-data, как вы передавали его в своем запросе почтальона.

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