【发布时间】:2016-03-28 22:16:44
【问题描述】:
我正在尝试使用 Swagger 2.0 创建 API。我想使用 SwaggerUI 生成交互式文档并生成 API 客户端(在 Java、JavaScript 中......)。我只是尝试生成一个小型 Java 客户端。
Enumerations 有问题...在 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();
}
}
这个类并不正确,它甚至不包含枚举值!
谁能告诉我我错过了什么?
编辑/
https://github.com/swagger-api/swagger-codegen/pull/1740 解决的问题
【问题讨论】:
-
最近有一个 PR 支持 Enum 类合并到 master 中:github.com/swagger-api/swagger-codegen/pull/1740。请拉出最新的 swagger-codegen 试试看。
-
@wing328 这个公关解决了问题!谢谢你:)
标签: java api rest swagger swagger-2.0