【发布时间】:2020-03-25 18:10:32
【问题描述】:
我尝试使用 openapi-generator-maven-plugin:3.3.4 从 yaml 规范生成 java 模型类。 在一个组件中,我有 allOf 参数试图通过它们的引用组合两个不同的组件。它是这样的:
Flight:
allOf:
- $ref: '#/components/schemas/FlightReference'
- $ref: '#/components/schemas/FlightItem'
我得到的是扩展 FlightReference 的 Flight 类,而 FlightItem 根本不包含在模型中。 swagger-codegen-maven-plugin 中的 AFAIK 两个类的所有属性都放在了 Flight 类中,而当前插件引入了多态性,第二个组件中缺少字段。
有没有办法像在 swagger 2.0 插件中那样创建结合其他两个组件的所有参数的类?
【问题讨论】:
-
你有没有试过写两个
allOflikeFlight: allOf: - $ref: '#/components/schemas/FlightReference' allOf: - $ref: '#/components/schemas/FlightItem' -
@SudhirOjha 谢谢!如果我们将另一个 allOf 关键字放在一个数组中,那么它也扩展了第一类,但包括第二类的字段。接下来我会稍微改变你的线索,如果我们做这样的事情:
Flight: allOf: - allOf: - $ref: '#/components/schemas/FlightItem' then - $ref: '#/components/schemas/FlightReference'那么两个类的属性都会被复制到目标中。所以它成功了,谢谢!