Я хочу генерировать модели в приложении Angular из сервисов SpringBoot Rest и для этого использую плагин ng-swagger-gen. Но каким-то образом Enums генерируются только как значения inline String , а не как класс Enum, поэтому каждый раз я должен либо вводить строковое значение, либо сам создавать объект Enum в Typescript.
@Data
public class DummyClass {
private DummyEnum dummyEnum;
}
public enum DummyEnum {
One,
Two,
Three
}
И генерируется только 1 файл, представляющий модель:
export interface DummyClass {
dummyEnum?: 'One' | 'Two' | 'Three';
}
Определение чванства выглядит так:
"definitions": {
"DummyClass": {
"type": "object",
"properties": {
"dummyEnum": {
"type": "string",
"enum": [
"One",
"Two",
"Three"
]
}
},
"title": "DummyClass"
}
}
Вместо этого, когда I вручную измените определение на это, все выглядит хорошо, сгенерировано 2 файла, 1 класс и 1 перечисление
"definitions": {
"DummyClass": {
"type": "object",
"properties": {
"dummyEnum": {
"$ref": "#/definitions/DummyEnum"
}
}
},
"DummyEnum": {
"type": "string",
"enum": [
"One",
"Two",
"Three"
]
}
}
А в Typescript:
import { DummyEnum } from './dummy-enum';
export interface DummyClass {
dummyEnum?: DummyEnum;
}
Не могли бы вы, пожалуйстасовет какой правильный подход? Мне очень нужны классы enum в моем Angular Application, но я хочу, чтобы они были сгенерированы , а не созданы вручную. Похоже, плагин ng-swagger-gen работает правильно, но каким-то образом Springfox Swagger2 рассматривал Enums как объект второго класса и поэтому не включил их в часть определений.
Спасибо