我正在尝试使用OpenAPI从micronaut应用程序中的Java对象和控制器构建REST API。我注意到DTO的最终成员被排除在生成的描述符之外(运行应用程序中的swagger-ui.html
),但我不明白为什么。
使用此代码,所有成员都会出现在API中。
public class Overview {
public String status;
public Table table1 = new Table();
public Table table2 = new Table();
}
个字符
只有第一个成员是可见的,为什么?
public class Overview {
public String status;
public final Table table1;
public final Table table2;
}
components:
schemas:
Overview:
type: object
properties:
status:
type: string
的字符串
1条答案
按热度按时间idfiyjo81#
在您的情况下,DTO的最终成员被排除在生成的描述符之外的原因是因为JavaBean Introspection API集成使用Java Bean Introspection API从Java类生成OpenAPI规范。根据Java Bean标准,final字段不会被考虑用于自省。这意味着final字段不会被包含在生成的OpenAPI规范中。如果你想要final字段字段出现在生成的规范中,您可以使用Jackson库中的@JsonProperty注解来包含它们:
字符串
这样,最后的字段将包含在生成的规范中,它们将出现在swagger-ui.html中。