如何在Swagger JSON中设置日期格式(2018-04-09 10:10:10)并显示示例日期
解决Swagger中requestDt字段仅显示为字符串的问题
我来帮你搞定这个Swagger文档显示的问题!你当前的配置只指定了字符串类型和正则校验规则,但Swagger需要明确的格式标识,才能将该字段识别为日期时间类型,进而展示对应的示例和友好提示。
具体解决方案
你需要在原有配置基础上添加两个关键属性:format: date-time 和 example,修改后的Swagger规范如下:
"requestDt": { "title": "requestDt", "description": "请求日期时间,格式为yyyy-MM-dd HH:mm:ss", "type": "string", "format": "date-time", "pattern": "[0-9]{4}-[0-1][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]", "example": "2024-05-20 15:45:30" }
各属性的作用说明
format: date-time:这是OpenAPI规范中用于标识日期时间类型的标准属性,Swagger UI识别到这个属性后,会将字段标记为日期时间类型,部分UI还会提供日历选择器这类便捷输入控件。example:直接提供一个符合格式要求的示例值,用户在文档页面就能直观看到正确的输入格式,无需再去解读正则规则。- 保留
pattern:你的正则规则可以继续保留,用于做更严格的格式校验——因为标准的date-time格式允许带时区信息(比如2024-05-20T15:45:30+08:00),而你的正则限制了不带时区的格式,这样能确保输入完全符合业务需求。
额外提示
如果使用的是OpenAPI 3.x版本,你还可以通过examples属性定义多个示例,但单一场景下用example就足够简洁清晰了。
内容的提问来源于stack exchange,提问作者Arunkumar Vasudevan




