嵌套复杂类型中的SpringDoc swagger文档生成异常

时间:2020-05-20 10:34:09

标签: swagger springdoc springdoc-openapi-ui

我们有一个Person类。 Person类具有类型为PersonDetail的属性。而且PersonDetail具有类型为Mail class的属性。

当我们启动应用程序并导航到swagger ui html页面时,openapi定义的components部分中未生成Mail类,并且我们得到“无法解析引用:无法解析指针:/ components / schemas / Mail不存在文档中的错误”。当我们检查第三级中是否存在复杂类型时,springdoc无法解析该类型。 Person和PersonDetail可以正常工作,但Mail失败。

人员->人员详细信息->邮件

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 个答案:

答案 0 :(得分:1)

没有问题。 看来您使用的配置不正确。

我们已经在这里回答了您:https://github.com/springdoc/springdoc-openapi/issues/679