代码之家  ›  专栏  ›  技术社区  ›  Steffen Harbich

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

  •  1
  • Steffen Harbich  · 技术社区  · 7 年前

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

    @JsonProperty
    private ZoneId timeZone;
    

    我包括 jackson-datatype-jsr310 版本 2.9.0。pr4 在我的依赖项中,序列化和反序列化的效果很好。但我的招摇过市ui显示了许多模型对象,如 分区ID ,则, ZoneOffset ,则, ZoneOffsetTransition etc现在非常混乱,因为区域ID被序列化为简单字符串。生成的API规范中存在相同的情况。 如何防止招摇过市以暴露这些(未使用的)模型对象?

    1 回复  |  直到 7 年前
        1
  •  4
  •   cassiomolin    7 年前

    你可以试试 @ApiModelProperty 背景 dataType string :

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

    如果 数据库类型 被忽略,您可以使用 Docket :

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