alt*_*vic 7 java openapi springdoc
我正在使用 springdoc 生成我的 OpenAPI 文档。
public class MyDto {
....
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Duration duration;
....
}
Run Code Online (Sandbox Code Playgroud)
OpenApi 显示的定义MyDto如下,持续时间被反序列化为类似以下内容:
"duration": {
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true,
"units": [
{
"dateBased": true,
"timeBased": true,
"duration": {
"seconds": 0,
"nano": 0,
"negative": true,
"zero": true
},
"durationEstimated": true
}
]
}
Run Code Online (Sandbox Code Playgroud)
我希望将其格式化为字符串,而不必添加@Schema(type = "string", format = "duration")到每个字段java.util.Duration的所有 DTO 中Duration。
我jackson-datatype-jsr310的类路径和序列化/反序列化负载按预期使用ISO 8601格式的字符串工作,除了 OpenAPI 显示错误的格式。
是否有可能以某种方式告诉 OpenAPIjava.util.Duration默认情况下将其视为字符串?
我自己设法解决了这个问题。如果其他人也有同样的问题,这里是一个配置示例:
@Configuration
class SpringDocConfiguration implements InitializingBean
{
@Override
public void afterPropertiesSet()
{
SpringDocUtils.getConfig().replaceWithSchema(Duration.class, new StringSchema().example("PT10S"));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |