我使用Swagger为我的基于jax-rs的API生成文档。在我的一个模型中,我有以下属性:
@XmlElementWrapper(name = "clip_list")
@XmlElement(name = "clip")
public List<Clip> mClips = new ArrayList<Clip>();但是,在UI中生成的JSON模型如下:
"clip": [
{
"duration":"",
"url":"",
"thumb":"",
}
]所以很明显,XmlElementWrapper注解没有被解析。如何强制Swagger正确嵌套元素?
输出应如下所示:
"clip_list": [
{
"duration":"",
"url":"",
"thumb":"",
}
]发布于 2016-01-25 23:01:29
输出看起来是正确的。有关更多详细信息,请查看Swagger存储库中的此issue。
您可以尝试使用@ApiModelProperty注释来操作模型属性的元数据,如下所示:
@XmlElement(name = "clip")
@ApiModelProperty(value = "clip_list")
@XmlElementWrapper(name = "clip_list")
public List<Clip> mClips = new ArrayList<Clip>();有关@ApiModelProperty应用编程接口的更多详细信息,请查看javadocs。
发布于 2016-01-28 14:31:59
解决了这个问题。只需从swagger依赖项中排除以下依赖项。
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
</exclusion>
</exclusions>在排除这些之后,我能够让注释正常工作。
https://stackoverflow.com/questions/34993641
复制相似问题