我使用swagger-springmvc集成来注释我的Java代码以生成Swagger定义。一切顺利,直到我到达一个请求类(发布到我的控制器),其中包含对另一个类的引用:
@ApiModel(value = "description")
public class MyRequest {
private MyOtherClass aclass;
...
@ApiModelProperty(value = "description", required = true)
public MyOtherClass getAclass() {
return aclass;
}
...
}
在另一个文件中,MyOtherClass以相同的方式注释:
@ApiModel(value = "description")
public class MyOtherClass {
public String anAttribute;
...
@ApiModelProperty(value = "description", required = true)
public String getAnAttribute() {
return anAttribute;
}
...
}
在Swagger UI中查看时,MyOtherClass模型不在生成的定义中,请求对象只显示为字符串:
{
"aclass": "MyOtherClass",
...
}
而不是:
{
"trips": [
{
"anAttribute" : ""
}
],
...
}
我错过了某个地方的注释还是这个限制?似乎应该有某种方法来强制将类包含在模型中。
答案 0 :(得分:3)
这是关于swagger-springmvc< = 0.8.2的错误,他们没有通过反射解析完整的属性树。现在,对于0.8.8版本,为Spring项目配置Swagger非常简单,并且此问题已成功解决。 您不需要添加任何特殊的附加注释!享受!