Команда curl Rest API не возвращает значения (java Spring) - PullRequest
0 голосов
/ 21 марта 2020

Я передаю объект json в скручиваемом виде, показанном ниже, и хотел бы получить данные. Возвращает 200, но возвращает пустой объект. Не уверен, где проблема происходит.

@RequestMapping(value = "/api", produces = "application/json")
public interface ApiController {
    @PostMapping("/submitJob")
    JobSubmitResultDTO submitJob(@RequestBody JobSubmitRequestDTO request);
}

@RestController
public class ApiController implements ApiController {
    @Override
    public ResultIntDTO answerToCall(String name) {
        return new ResultIntDTO(10);
    }


    @Override
    public JobSubmitResultDTO submitJob(JobSubmitRequestDTO request) {

        //Create an instance of JobSubmitResultDTO
        JobSubmitResultDTO response = new JobSubmitResultDTO();

        //print from the object 
        System.out.println(request.getParamsMap());



        return response;

@Data
public  class JobSubmitRequestDTO {
   Map<String,Object> paramsMap = new HashMap<String,Object>();

}

@Data
public class JobSubmitResultDTO {
    String jobID;
    String message;
}

Команда Curl:

curl -X POST -H "Content-type: Application/json" -d "{ "paramsMap": {"key1": "value1"}}" http://XXXXXX:XXXX/api/submitJob

Ожидаемый вывод на печать в командной строке:

System.out.println(request.getParamsMap()); ->  {"key1": "value1"}  (Expected)

Печатный неожиданный вывод:

System.out.println(request.getParamsMap()); -> {} (unExpected)

Мне интересно, почему он возвращает {} вместо {"key1": "value1"}.
Есть идеи, что я делаю неправильно?

1 Ответ

0 голосов
/ 21 марта 2020

Попробуйте использовать @ModelAttribute("paramsMap"). Смотрите код:

    @Override
    public JobSubmitResultDTO submitJob(@ModelAttribute("paramsMap") JobSubmitRequestDTO request) {

        //Create an instance of JobSubmitResultDTO
        JobSubmitResultDTO response = new JobSubmitResultDTO();

        //print from the object 
        System.out.println(request.getParamsMap());



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