我想从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以某种方式将枚举视为第二类对象,因此未将它们包括在定义部分。
谢谢