使用 oneOf 时未生成 OpenAPI 模型
OpenAPI models not being generated when using oneOf
我在 spring 引导下使用 OpenAPI+OpenAPI 生成器,并尝试按如下方式使用架构 oneof
:
这是requests.yaml文件中的配置:
...
requestBody:
name: request
required: true
content:
application/json:
schema:
oneOf:
- $ref: 'components.yaml#/Request'
- $ref: 'components.yaml#/ComplexRequest'
...
这是components.yaml文件中的相关配置:
Request:
allOf:
- $ref: '#/BaseInfo'
- type: object
properties:
should_create:
type: boolean
enum: [ false ]
reference_id:
type: string
required:
- reference_id
ComplexRequest:
allOf:
- $ref: '#/BaseInfo'
- type: object
properties:
should_create:
type: boolean
enum: [ true ]
create_data:
$ref: '#/Reference'
required:
- create_data
BaseInfo:
type: object
properties:
customer_id:
type: string
Reference:
type: object
properties:
propery_1:
type: string
propery_2:
type: string
propery_3:
type: string
出于某种原因,所有这些组件都没有生成,而且只有这些组件没有生成。
有人可以告诉我我在这里做错了什么吗?
如果有人遇到这个问题,希望我能为您节省一些调查时间;
至于 2022 年 3 月,openapi-generator 似乎不支持 oneOf
(和 anyOf
):
https://openapi-generator.tech/docs/roadmap/#short-term
虽然不适合我的情况,但您可以尝试此处建议的解决方案:
How to use OpenAPI "oneOf" property with openapi-generator-maven-plugin when generating Spring code
我在 spring 引导下使用 OpenAPI+OpenAPI 生成器,并尝试按如下方式使用架构 oneof
:
这是requests.yaml文件中的配置:
...
requestBody:
name: request
required: true
content:
application/json:
schema:
oneOf:
- $ref: 'components.yaml#/Request'
- $ref: 'components.yaml#/ComplexRequest'
...
这是components.yaml文件中的相关配置:
Request:
allOf:
- $ref: '#/BaseInfo'
- type: object
properties:
should_create:
type: boolean
enum: [ false ]
reference_id:
type: string
required:
- reference_id
ComplexRequest:
allOf:
- $ref: '#/BaseInfo'
- type: object
properties:
should_create:
type: boolean
enum: [ true ]
create_data:
$ref: '#/Reference'
required:
- create_data
BaseInfo:
type: object
properties:
customer_id:
type: string
Reference:
type: object
properties:
propery_1:
type: string
propery_2:
type: string
propery_3:
type: string
出于某种原因,所有这些组件都没有生成,而且只有这些组件没有生成。 有人可以告诉我我在这里做错了什么吗?
如果有人遇到这个问题,希望我能为您节省一些调查时间;
至于 2022 年 3 月,openapi-generator 似乎不支持 oneOf
(和 anyOf
):
https://openapi-generator.tech/docs/roadmap/#short-term
虽然不适合我的情况,但您可以尝试此处建议的解决方案: How to use OpenAPI "oneOf" property with openapi-generator-maven-plugin when generating Spring code