Enumiate Enum с пользовательским значением или свойством - PullRequest
2 голосов
/ 20 февраля 2020

Теперь я сталкиваюсь с проблемой при создании Enum с пользовательскими свойствами.

В Project A я создаю веб-сервис API. Я использую enunciate-maven-plugin (версия 2.12.1) для генерации документации swagger из Java кода. Когда запускается enunciate-maven-plugin, он выводит swagger. json

Затем в проекте B, который использует API-интерфейс Project A, я использую swagger-codegen-maven-plugin (версия 2.3. 1) для генерации Java кода из вышеуказанного чванства. json.

maven конфигурация в проекте B:

<plugin>
      <groupId>io.swagger</groupId>
      <artifactId>swagger-codegen-maven-plugin</artifactId>
      <version>2.4.8</version>
      <executions>
        <execution>
          <goals>
            <goal>generate</goal>
          </goals>
          <configuration>
            <inputSpec>swagger-project-a.json</inputSpec>
            <language>java</language>
            <generateApis>false</generateApis>
            <generateApiTests>false</generateApiTests>
            <generateApiDocumentation>false</generateApiDocumentation>
            <generateSupportingFiles>false</generateSupportingFiles>
            <generateModelDocumentation>false</generateModelDocumentation>
            <output>${project.basedir}</output>
            <apiPackage>extern.api.swagger</apiPackage>
            <modelNamePrefix></modelNamePrefix>
            <modelPackage>extern.api.projecta</modelPackage>
          </configuration>
        </execution>
      </executions>
    </plugin>

Все работает хорошо, кроме Enum. Например, у меня есть enum

public enum ColorEnum {
   RED("1"),
   GREEN("2"),
   BLUE("3")

   private final String value;

   ColorEnum(value) {
       this.value = value;
   }

   public String getValue(){ return value;}

}

Сгенерированное чванство. json будет:

"json_ColorEnum" : {
  "type" : "string",
  "title" : "ColorEnum",
      "enum" : [
        "RED",
        "GREEN",
        "BLUE"
      ]
}

Значения перечисления не генерируются. Я уже пробовал @JsonProperty следующим образом: REF: https://github.com/stoicflame/enunciate/issues/653

public enum ColorEnum {
   @JsonProperty("1")
   RED("1"),
   @JsonProperty("2")
   GREEN("2"),
   @JsonProperty("3")
   BLUE("3")

   private final String value;

   ColorEnum(value) {
       this.value = value;
   }

   public String getValue(){ return value;}

}

И вывод не такой, как ожидалось:

"json_ColorEnum" : {
  "type" : "string",
  "title" : "ColorEnum",
      "enum" : [
        "1",
        "2",
        "3"
      ]
}

Как Могу ли я сгенерировать документацию Enum с меткой и значением?

Любая помощь приветствуется. Спасибо.

...