400 неверный запрос при попытке POST к конечной точке Spring - PullRequest
0 голосов
/ 20 февраля 2019

Попытка опубликовать это на моем Spring API

{
    "test1":"test1",
    "test2":"test2",
    "test3":"test3"
}

Но я продолжаю получать 400 Bad Request ответ.

Контроллер выглядит так:

@RestController
@RequestMapping("/rest/api")
public class DokumentController {

    @PostMapping(value = "/test", consumes = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity test(@RequestBody TestDTO body) {
        System.out.println(body.getTest1());
        return ResponseEntity.ok().build();
    }
}

TestDTO выглядит так:

public class TestDTO {
    private String test1;
    private String test2;
    private String test3;

    TestDTO(String test1, String test2, String test3) {
        this.test1 = test1
        this.test2 = test2
        this.test3 = test3
    }

    public String getTest1() {
        return test1;
    }

    public void setTest1(String test1) {
        this.test1 = test1;
    }

    //And so on..

}

Может кто-нибудь сказать мне, что я здесь делаю не так?

1 Ответ

0 голосов
/ 20 февраля 2019

Вы должны создать конструктор без аргументов в вашем классе DTO:

public class TestDTO {
    private String test1;
    private String test2;
    private String test3;

    //Default no argument constructor
    TestDTO() {
    }

    TestDTO(String test1, String test2, String test3) {
        this.test1 = test1
        this.test2 = test2
        this.test3 = test3
    }

    public String getTest1() {
        return test1;
    }

    public void setTest1(String test1) {
        this.test1 = test1;
    }

    //And so on..

}

. Jackson Framework сначала создает класс и использует отражение для установки значений.

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