openapi生成器/swagger codegen中的java嵌套属性继承

3phpmpom  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(388)

我正在尝试使用第三方公司提供给我的swagger模式生成java模型,但是生成要么失败,要么不能生成我所期望的对象。我不确定问题出在生成器还是模式上。
基本上,模式有一个父对象pet,其属性为“attributes”,其中“attributes”具有属性“size”。该模式还有一个子对象cat,它“继承”自pet(在'allof'语句中引用pet),并且它本身有一个带有嵌套属性“whiskercount”的属性“attributes”。

Cat:
  allOf:
      - $ref: '#/definitions/Pet'
      - type: object
        properties:
          attributes:
            type: "object"
            properties:
              weight:
                type: "string"
Pet:
  type: "object"
  properties:
    attributes:
      type: "object"
      properties:
        whiskerCount:
          type: "integer"
          format: "int64"

使用swagger编辑器(2.0)时,ui模型显示了为我提供模式的公司试图实现的结果:

Cat {
    attributes  {
        whiskerCount    integer($int64)
        weight          string

但是,当尝试生成模型时,结果是:
generatorresultswagger codegen(2.2.1)生成失败: getAttributes() in Cat cannot override getAttributes() in Pet (返回类型不兼容)openapi生成器(4.3.1、5.0.0、5.1.0)生成成功,但生成类“cat.java”、“catalof.java”、“catalofattributes.java”、“pet.java”、“petattributes.java”。cat#attributes(catalofattributes类型)仅包含“whiskercount”,pet#attributes(petattributes类型)仅包含“size”)
有没有一种方法可以实现一个“组合”属性对象(cat的成员变量),它同时包含wishercount和size两个字段?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题