【问题标题】:How to combine two components using allOf in openapi yaml specification?如何在 openapi yaml 规范中使用 allOf 组合两个组件?
【发布时间】: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 插件中那样创建结合其他两个组件的所有参数的类?

【问题讨论】:

  • 你有没有试过写两个allOf like Flight: allOf: - $ref: '#/components/schemas/FlightReference' allOf: - $ref: '#/components/schemas/FlightItem'
  • @SudhirOjha 谢谢!如果我们将另一个 allOf 关键字放在一个数组中,那么它也扩展了第一类,但包括第二类的字段。接下来我会稍微改变你的线索,如果我们做这样的事情:Flight: allOf: - allOf: - $ref: '#/components/schemas/FlightItem' then - $ref: '#/components/schemas/FlightReference' 那么两个类的属性都会被复制到目标中。所以它成功了,谢谢!

标签: java yaml openapi codegen


【解决方案1】:

3.3.4 不久前发布。请升级到最新的稳定版本v4.2.3,应该可以为您解决allOf的处理问题。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-23
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多