[英]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.