Генерация Enums с помощью ng-swagger-gen - PullRequest
2 голосов
/ 12 октября 2019

Я хочу генерировать модели в приложении 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 как объект второго класса и поэтому не включил их в часть определений.

Спасибо

...