【发布时间】:2022-03-02 20:56:53
【问题描述】:
我在 Spring Boot 中使用 OpenAPI+OpenAPI-generator,并尝试使用架构 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
由于某种原因,所有这些组件都没有生成,只有这些组件没有生成。 有人可以告诉我我在这里做错了什么吗?
【问题讨论】:
-
是的,我也注意到this,我真的希望这不是错误,但我在这里错过了一些东西。 :(
-
我看到理论上应该可以在反序列化时将 Request 与 ComplexRequest 区分开来,因为您需要的字段不同。我有一个使用 openapi-generator 5.4.0 为 java 工作的一代,但我确实添加了一个鉴别器字段(如 requestType:type:string enum:['COMPLEX'])。
标签: polymorphism openapi openapi-generator