Swagger不解析@XmlElementWrapper注释

时间:2016-01-25 13:18:46

标签: java json jersey swagger swagger-ui

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

2 个答案:

答案 0 :(得分:0)

输出看起来正确。有关更多详细信息,请查看Swagger存储库中的issue

您可以尝试使用@ApiModelProperty注释来操作模型属性的元数据,如下所示:

@XmlElement(name = "clip")
@ApiModelProperty(value = "clip_list")
@XmlElementWrapper(name = "clip_list")
public List<Clip> mClips = new ArrayList<Clip>();

有关@ApiModelProperty API的详细信息,请查看javadocs

答案 1 :(得分:0)

解决了这个问题。只需从swagger依赖项中排除以下依赖项。

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('image1.JPG',0)
edges = cv2.Canny(img,255,255)

plt.subplot(121),plt.imshow(img,cmap = 'gray')
plt.title('Original Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(edges,cmap = 'gray')
plt.title('Edge Image'), plt.xticks([]), plt.yticks([])

plt.show()

排除这些后,我能够得到注释。