你如何为Swagger注释嵌套的Java类?

时间:2014-09-18 12:14:13

标签: spring-mvc swagger

我使用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" : ""
     }
  ],
  ...
}

我错过了某个地方的注释还是这个限制?似乎应该有某种方法来强制将类包含在模型中。

1 个答案:

答案 0 :(得分:3)

这是关于swagger-springmvc< = 0.8.2的错误,他们没有通过反射解析完整的属性树。现在,对于0.8.8版本,为Spring项目配置Swagger非常简单,并且此问题已成功解决。 您不需要添加任何特殊的附加注释!享受!