繁体   English   中英

修改swagger API列表

[英]modify swagger api listing

我正在使用Jersey 2作为REST API的JAX-RS实现。

另外,我还成功配置了swagger以启用API列表的生成。 我正在使用静态swagger-ui项目来呈现带有描述的页面。

我的行家pom看起来像这样:

    <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-server</artifactId>
            <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.ext</groupId>
        <artifactId>jersey-spring3</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.5.1</version>
    </dependency>
    <dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-jersey2-jaxrs_2.10</artifactId>
        <version>1.3.2</version>
    </dependency>

但是,当在Java资源中描述我的一些方法和参数时,我发现它太冗长而无法与代码混合。

因此,我决定使用一些外部机制来提供描述。 我可以想象一些文件,在其中输入方法名称和参数以及附带的描述。 生成结果API列表JSON文件时,我想将Java资源文件中的信息与外部文件中的信息合并。

根据谷歌搜索和阅读材料,我可以看到API列表不是存储在文件中,而是动态生成的。 因此,我需要找到一种方法来破解生成API列表以添加我的自定义描述的过程。

我为此尝试使用ContainerResponseFilter,并且可以使用生成的API列表对象拦截响应实体,但是此对象是scala只读对象。 所以我不能覆盖描述属性。

有什么方法可以使用我的自定义信息修改我的API列表?

我认为使用过滤器是最好的主意。 您不需要修改 Scala对象,只需使用新描述从该对象创建一个新对象。 只要看看Swagger创建对象并模仿它的方式即可。

自从我看过swagger以来已经有一段时间了,但是您可以只创建一个包含swagger标记的专用接口,然后实现该接口吗? 这并不是您要查找的内容,但至少它会使详细信息脱离具体的类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM