Исключение создания документации SpringDoc Swagger во вложенном сложном типе

У нас есть класс Person. Класс Person имеет свойство типа PersonDetail. А у PersonDetail есть свойство типа Mail class.

Когда мы запускаем приложение и переходим на html-страницу swagger ui, класс Mail не создается в разделе компонентов определения openapi, и мы получаем "Не удалось разрешить ссылку: не удалось разрешить указатель: /components/schemas/Mail не существует в документе" ошибка на странице. Как мы проверили, есть ли сложный тип на третьем уровне, springdoc не может разрешить этот тип. Person и PersonDetail работают нормально, но Mail не работает.

Person->PersonDetail-> Почта

public class Person {
private String name;

private PersonDetail personDetail;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public PersonDetail getPersonDetail() {
    return personDetail;
}

public void setPersonDetail(PersonDetail personDetail) {
    this.personDetail = personDetail;
}
}

public class PersonDetail {
private String surname;

private List<Mail> mails;

public List<Mail> getMails() {
    return mails;
}

public void setMails(List<Mail> mails) {
    this.mails = mails;
}
}

public class Mail {
private String mailAddress;

public String getMailAddress() {
    return mailAddress;
}

public void setMailAddress(String mailAddress) {
    this.mailAddress = mailAddress;
}
}

@get(path = "/getPersonTest")
@operation(description = "Testttt")
@ApiResponses(value = { @ApiResponse(responseCode = "200", description = "successful operation",
content = @content(schema = @Schema(implementation = Person.class)))})
public ResponseEntity getPerson(@RequestParam String name){
Person person = new Person();
return ResponseEntity.status(HttpStatus.OK).body(person);
}

1 ответ

Нет никаких проблем. Похоже, вы используете неправильную конфигурацию.

Мы уже ответили вам здесь: https://github.com/springdoc/springdoc-openapi/issues/679

Другие вопросы по тегам