使用 Swagger 在 Java 客户端中生成枚举

Generate Enum in Java Client with Swagger

我正在尝试使用 Swagger 2.0 创建一个 API。我想使用 SwaggerUI 生成交互式文档并生成 API 客户端(在 Java、JavaScript... 中)。我只是试图生成一个小的 Java 客户端。

枚举有问题...在Swagger中我可以这样写(这里是YAML,直接写也是一样的问题JSON):

 definitions:
   MediumStatus:
     type: string
     enum:
       - CLOSED
       - OPEN_AVAILABLE
       - OPEN_NOT_AVAILABLE
       - NOT_AVAILABLE

在生成的Java客户端中,expect/want是这样的:

public enum MediumType
{
CLOSED,
OPEN_AVAILABLE,
OPEN_NOT_AVAILABLE,
NOT_AVAILABLE;

public String value()
{
    return name();
}

public static MediumType fromValue(String v)
{
    return valueOf(v);
}

}

但是 SwaggerCodegen 生成了一个客户端:

    @ApiModel(description = "")
    @javax.annotation.Generated(value = "class io.swagger.codegen.languages.JavaClientCodegen", date = "2015-12-21T14:03:23.470Z")
   public class MediumType   {

  @Override
  public String toString()  {
    StringBuilder sb = new StringBuilder();
    sb.append("class MediumType {\n");

    sb.append("}");
    return sb.toString();
  }
}

这个 class 并不正确,它甚至不包含枚举值!

有人可以告诉我我缺少什么吗?

编辑/

问题已解决 https://github.com/swagger-api/swagger-codegen/pull/1740

此提交解决的问题:https://github.com/swagger-api/swagger-codegen/pull/1740