用ng-swagger-gen生成枚举

时间:2019-10-12 14:02:03

标签: angular enums swagger swagger-codegen

我想从SpringBoot Rest服务在Angular应用程序中生成模型,为此,我使用ng-swagger-gen插件。但是以某种方式,枚举仅作为内联字符串值生成,而不是作为Enum类生成,因此每次我必须自己键入字符串值或在Typescript中创建Enum对象时。

@Data
public class DummyClass {
   private DummyEnum dummyEnum;
}

public enum DummyEnum {
    One,
    Two,
    Three
}

仅生成一个表示模型的文件:

export interface DummyClass {
dummyEnum?: 'One' | 'Two' | 'Three';
}

昂首阔步的定义如下:

"definitions": {
"DummyClass": {
  "type": "object",
  "properties": {
    "dummyEnum": {
      "type": "string",
      "enum": [
        "One",
        "Two",
        "Three"
      ]
    }
  },
  "title": "DummyClass"
 }
}

相反,当我手动更改其定义时,一切看起来都正常,生成了2个文件,1个类和1个枚举

"definitions": {
"DummyClass": {
  "type": "object",
  "properties": {
    "dummyEnum": {
      "$ref": "#/definitions/DummyEnum"
    }
  }
},
"DummyEnum": {
  "type": "string",
  "enum": [
    "One",
    "Two",
    "Three"
  ]
}
}

在打字稿中:

import { DummyEnum } from './dummy-enum';
  export interface DummyClass {
 dummyEnum?: DummyEnum;
  }

请问什么是正确的方法?我非常需要Angular应用程序中的枚举类,但是我希望它们是生成而不是手动创建的。似乎ng-swagger-gen插件可以正常工作,但Springfox Swagger2以某种方式将枚举视为第二类对象,因此未将它们包括在定义部分。

谢谢

0 个答案:

没有答案
相关问题