java - 如何在 OpenAPI 3 中正确定义可为空属性的示例?
问题描述
我在 Spring Boot 中使用 OpenAPI 和 openapi-generator-maven-plugin。我正在尝试在我的响应中创建一个示例对象。我遵循了几个不同网页的建议,尤其是这个:
https://swagger.io/docs/specification/adding-examples/
但无论我尝试什么,我都无法正确显示示例数据。这里应该在请求中的对象:
Period:
type: object
required:
- startDate
- endDate
properties:
startDate:
type: string
format: date
nullable: true
example: "2021-01-01"
endDate:
type: string
format: date
nullable: true
example: "2030-01-01"
CreateInstancesRequest:
type: object
required:
- id
properties:
id:
$ref: '#/components/schemas/Id'
period:
allOf:
- $ref: '#/components/schemas/Period'
但我得到的不是我想要的:
我期待这样的事情:
{
"id": "some-id",
"period": {
"endDate": "2020-01-01",
"startDate": "2022-01-01"
}
}
但也许我错了,因为为 Period 类生成了 java 代码:
我认为present
实际示例中的属性来自org.openapitools.jackson.nullable.JsonNullable
类。
Jackson 的对象映射器配置如下:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JsonNullableModule());
objectMapper.registerModule(new JSR310Module());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
你能帮我吗?
解决方案
推荐阅读
- elasticsearch - ElasticSearch - 查询以将字符串附加到文档字段中的现有字符串
- php - PHP fopen() as APPEND 是否比 file_get_(put)contents() 更好,以避免丢失多个请求的日志?
- jquery - 使用 Ajax 和 PHP
- r - RStudio 开始时为空
- react-native - 将 props 从根组件传递到 AppNavigator
- angular - Angular 8:动态路由仅在使用 RouterLink 时有效?
- c# - 切片器连接不显示可透视的更改后数据源
- c++ - "rdtsc": "=a" (a0), "=d" (d0) 这是做什么的?
- azure - .netcore 2.1 记录到 Azure Blob 的问题
- c++ - 模板引用的类型推导