【问题标题】:Swagger UI shows nested model objects when using ZoneId and jackson-datatype-jsr310Swagger UI 在使用 ZoneId 和 jackson-datatype-jsr310 时显示嵌套模型对象
【发布时间】:2018-03-05 15:37:17
【问题描述】:

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

@JsonProperty
private ZoneId timeZone;

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

【问题讨论】:

    标签: spring jackson swagger swagger-ui springfox


    【解决方案1】:

    您可以尝试将@ApiModelProperty 设置为dataTypestring

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

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

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

    【讨论】:

    • 谢谢!我采用了您的第二个解决方案,因为我更容易不使用 swagger 注释来注释属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多