【问题标题】:OpenApi not picking up 'example' from @SchemaOpenApi 没有从 @Schema 中获取 \'example\'
【发布时间】:2022-11-11 04:18:01
【问题描述】:

在我的请求模型中,我有一个字段

    @NotNull
    @Schema(description = "blahblah", example = "19680228", type = "Date", format = "String", pattern = "([0-9]{4})(?:[0-9]{2})([0-9]{2})", required = true, nullable = false)
    @JsonDeserialize(using = CustomDateDeserializer.class)
    private OffsetDateTime birthDate;

如您所见,我在@Schema 中有example = "19680228"

当我转到https://editor.swagger.io/ 并将我的.yaml 文件粘贴到其中时,我希望它会选择example up 并在我的端点的示例部分和我的模型模式中显示birthDate 19680228。我会否则,当我点击 /api-docs.yaml 端点时,预计 example 是在 yaml 中生成的,但事实并非如此:

这是它在我的模型中的显示方式:

这是我的控制器的示例值的外观:

如您所见,格式仍然是OffsetDateTime 的格式,并且根本没有example

但是,如果我在 https://editor.swagger.io/ 中修改 yaml 并添加如下示例:

,然后我的模式模型显示它

,并且控制器中的示例也将其显示为 19680210:

所以,看起来 OpenApi 没有正确处理@Schema

【问题讨论】:

标签: spring-boot openapi


【解决方案1】:

我有同样的问题,我没有找到合适的解决方案,唯一的解决方案是使用带有模式的字符串类型。

像这样 @Schema(type = "String" , example = "2022-10-10 00:00:00", pattern = "yyyy-MM-dd HH:mm:ss")

【讨论】:

    猜你喜欢
    • 2012-08-23
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 2023-02-08
    • 2017-09-07
    相关资源
    最近更新 更多