我正在使用JAXRS应用程序,我希望通过Swagger公开REST API .
配置与示例(Swagger JAX RS sample)相同 .
它已经工作正常,直到我添加了我的应用程序所需的几个过滤器(javax.servlet.Filter和javax.ws.rs.container.ContainerRequestFilter) .
过滤器在/ api / * path上工作,Swagger从/ api / api-docs路径读取文档 .
是否有可能避免Swagger的过滤器?
我正在使用JAXRS应用程序,我希望通过Swagger公开REST API .
配置与示例(Swagger JAX RS sample)相同 .
它已经工作正常,直到我添加了我的应用程序所需的几个过滤器(javax.servlet.Filter和javax.ws.rs.container.ContainerRequestFilter) .
过滤器在/ api / * path上工作,Swagger从/ api / api-docs路径读取文档 .
是否有可能避免Swagger的过滤器?
1 回答
找到了解决方案 . 在web.xml中,我添加了处理/ api / api-docs / *请求的过滤器 . 它在处理/ api / *请求的过滤器之前设置 .
SwaggerDocRequestFilter看起来像这样:
这将覆盖所有
javax.servlet.Filter
实现 .对于重写JAX RS过滤器,需要提供
javax.ws.rs.container.DynamicFeature
接口的自己实现 . 此实现仅在针对特定资源的请求发生时应用过滤器,在我的情况下针对特定包中的资源 .在这种情况下,Swagger UI工作正常 . 在对特定资源的请求中,应用JAX RS过滤器 .