使用ZoneId和jackson-datatype-jsr310时,Swagger UI显示嵌套的模型对象

时间:2018-03-05 15:37:17

标签: spring jackson swagger swagger-ui springfox

我正在使用Spring,springfox,Jackson开发REST API,我的模型类包含ZoneId作为属性:

@JsonProperty
private ZoneId timeZone;

我在我的依赖项中包含了 jackson-datatype-jsr310 版本 2.9.0.pr4 ,所以它正在按预期进行序列化和反序列化。但是我的swagger-ui现在显示了许多模型对象,例如ZoneIdZoneOffsetZoneOffsetTransition等,因为区域ID被序列化为简单字符串,所以这非常令人困惑。生成的API规范中的相同情况。 如何防止招摇暴露这些(未使用的)模型对象?

1 个答案:

答案 0 :(得分:3)

您可以尝试@ApiModelPropertydataType设置为string

@JsonProperty
@ApiModelProperty(dataType = "string")
private ZoneId timeZone;

如果dataType被忽略,您可以使用Docket

@Bean
public Docket configureDocket() {
    return new Docket(DocumentationType.SWAGGER_2)
            .directModelSubstitute(ZoneId .class, String.class);
}