使用 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
我正在尝试使用 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