【问题标题】:Swagger does not parse @XmlElementWrapper annotationSwagger 不解析 @XmlElementWrapper 注释
【发布时间】:2016-05-01 19:46:17
【问题描述】:

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

【问题讨论】:

    标签: java json jersey swagger swagger-ui


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      解决了这个问题。只需从 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>
      

      排除这些后,我能够使注释正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-27
        • 2020-04-04
        • 1970-01-01
        • 2010-11-09
        • 2011-04-09
        • 2011-03-18
        • 2020-12-29
        相关资源
        最近更新 更多