【发布时间】: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。
【问题讨论】:
-
类型(应该是字符串)和格式(应该是日期)之间可能不匹配,请参阅swagger.io/docs/specification/data-models/data-types。
标签: spring-boot openapi