【问题标题】:SpringFox @ApiModelProperty for Optional<LocalDateTime>SpringFox @ApiModelProperty for Optional<LocalDateTime>
【发布时间】:2020-05-07 17:18:34
【问题描述】:

我正在尝试使用 SpringFox 2.8+ 为包含 Optional 字段的类生成模型。

Docket 配置具有genericModelSubstitutes(Optional.class) 规则,非常适用于Optional&lt;String&gt;。但是当类型为Optional&lt;LocalDateTime&gt; 时,文档包含无效的/definitions/LocalDateTime 引用。如果常规LocalDateTime 字段默认规则工作正常,我得到{"type":"string","format":"date-time"}

我尝试使用@ApiModelProperty 作为解决方法,但它不会影响生成的 json。有没有办法覆盖Optional 模型属性定义?

public class MyModel {
    @ApiModelProperty(dataType = "string", example = "abc") // works
    public Optional<String> a;

    @ApiModelProperty(dataType = "string", example = "2019-08-19T15:05:59.785Z") // works
    public LocalDateTime b;

    @ApiModelProperty(dataType = "string", example = "2019-08-19T15:05:59.785Z") // doesn't work :(
    public Optional<LocalDateTime> c;
}

【问题讨论】:

    标签: java spring optional openapi springfox


    【解决方案1】:

    我在使用 @ApiParam 时遇到了类似的问题。以下对Docket 配置的更改为我解决了这个问题。也许你可以试试@ApiModelProperty

    Docket(DocumentationType.SWAGGER_2)
      .select()
      ...
      .alternateTypeRules(
        newRule(
          typeResolver.resolve(Optional.class, LocalDateTime.class),
          typeResolver.resolve(String.class)
        )
      );
    

    【讨论】:

      猜你喜欢
      • 2020-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多