Есть ли способ получить объект JSON в качестве ввода в GET типа Spring REST Service? - PullRequest
0 голосов
/ 23 января 2020

Я не хочу использовать его как метод POST, так как это служба листинга, а объект JSON помогает получить параметры Filter. Ниже мой код, который я сделал для работы с помощью POST. Есть ли способ сделать то же самое, используя GET (Соответствует стандартам REST в Spring-Boot?

TimeEntriesRequest - это мой класс запросов POJO, а TimeEntry - мой компонент

 @RequestMapping(
        method=RequestMethod.POST,
        value="/TimeEntries",
        //consumes = "application/json",
        produces = "application/json"
    )
@ResponseBody
public List<TimeEntry> getTimeEntries(@RequestBody TimeEntriesRequest timeEntriesRequest) throws RestClientException, IllegalArgumentException, IllegalAccessException {

    System.out.println("In controller");
    return timeEntriesService.getAllTimeEntries(timeEntriesRequest);

}

1 Ответ

0 голосов
/ 23 января 2020

Spring Boot не поддерживает @RequestBody с методом GET, но вы можете попробовать использовать другую аннотацию - @RequestParam.

@RequestMapping(
    method=RequestMethod.GET,
    value="/TimeEntries",
    produces = "application/json"
)
@ResponseBody
public List<TimeEntry> getTimeEntries(
   @RequestParam(value = "personDTO") String timeEntriesRequestDTO) {
   TimeEntriesRequest timeEntriesRequest = new ObjectMapper().readValue(timeEntriesRequestDTO, TimeEntriesRequest.class);
   //       ...
}

Существует учебник , которому вы можете следовать, чтобы реализовать его

PS Я не думаю, что это рекомендуемый подход, потому что json будет в URL-адрес запроса, поэтому вам нужно проверить, есть ли другие подходы, прежде чем использовать этот.

...