【问题标题】:springdoc-openapi-webflux-ui issue with java.time.Duration (ISO 8601 duration format)java.time.Duration 的 springdoc-openapi-webflux-ui 问题(ISO 8601 持续时间格式)
【发布时间】:2021-05-31 07:37:58
【问题描述】:

Swagger 文档将持续时间显示为

  "duration": {
    "seconds": 0,
    "nano": 0,
    "zero": true,
    "negative": true,
    "units": [
      {
        "dateBased": true,
        "timeBased": true,
        "durationEstimated": true
      }
    ]
  },

但实际格式是 ISO 8601 持续时间格式 (PT0S),以下是代码段。有什么方法可以正确格式化文档吗?

任务文档

@Document(collection = "tasks")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder(toBuilder = true)
public class Task {

    public enum Status {
        todo, inprogress, done
    }

    @Id
    private String id;

    private String name;

    private String description;

    private Status status = Status.todo;

    private Duration estimatedDuration = Duration.ZERO;

    private Duration duration = Duration.ZERO;
    }

初始化

@SpringBootApplication
@OpenAPIDefinition(info = @Info(title = "APIs v1.0.2", version = "1.0.2", description = "Documentation APIs v1.0.2"))
public class SBApplication {
......

}

pom 依赖

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-webflux-ui</artifactId>
        <version>1.4.3</version>
    </dependency>

【问题讨论】:

  • 你找到解决办法了吗?
  • @Mister_Jesus 还没有。

标签: java spring-boot swagger duration springdoc-openapi-ui


【解决方案1】:

试试

    import io.swagger.v3.oas.annotations.media.Schema;

    ...

    @Schema(type = "string", format = "duration")
    private Duration estimatedDuration = Duration.ZERO;

    @Schema(type = "string", format = "duration")
    private Duration duration = Duration.ZERO;
  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 2014-08-16
    • 2021-01-11
    相关资源
    最近更新 更多