Как получить GET repsonse в виде объекта?

Я зеленый новичок в работе с API, буду очень благодарен, если подскажите как можно получить GET response в виде объекта. Использую библиотеку rest assured и jackson. Хочу получить объект Issue с гитхаба. Вот мой класс Issue

public class Issue {
private String title;
private String body;

public Issue(String title) {
    this.title = title;
}

public void setTitle(String title) {
    this.title = title;
}

public void setBody(String body) {
    this.body = body;
}

public String getTitle() {
    return title;
}

public String getBody() {
    return body;
}

}

Я пытался сделать что-то такого рода:

Issue existingIssue =
             given()
            .auth()
            .preemptive()
            .basic("userName", "password")
            .get("https://api.github.com/repos/userName/repositoryName/issues/1")
            .getBody()
            .as(Issue.class);

    System.out.println(existingIssue.getTitle());

Однако получал исключение com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of Issue (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator). Как поступить?


Ответы (1 шт):

Автор решения: Alexey R.

Добавьте аннотацию @JsonIgnoreProperties(ignoreUnknown = true) к классу Issue и уберите конструктор.

Если ваш JSON десериализуется Jackson'ом, то в таком случае, поля, которые не мапятся очевидно на класс, будут игнорироваться. Только помните, что такой подход повышает вероятность проблем человеческого фактора (где-то опечатались, что-то не заметили).

→ Ссылка