【已解决】使用swagger-ui没有404,但是不显示接口问题

个人博客同步CSDN

1.起因

多模块项目结构如下:
swagger提取为公共模块
ResponseHandler负责处理统一结果返回,SwaggerConfig配置swagger,controller和启动类与公共模块不在一个包下
【已解决】使用swagger-ui没有404,但是不显示接口问题_第1张图片

使用了swagger显示接口文档信息,SwaggerConfig也正常配置,UserApplication中也配置了扫描包的路径,但是出现扫描swagger上层包没有出现接口文档的问题(swagger-ui.html 没有404)必须定位到config的包才可以扫描,且同时扫描上层包的话也会不出现接口文档
【已解决】使用swagger-ui没有404,但是不显示接口问题_第2张图片

2.发现问题

自己调试半天没有找到问题所在,最后在同学的帮助下,发现问题居然出现在ResponseHandler统一结果返回中
原本的代码是这样的:
【已解决】使用swagger-ui没有404,但是不显示接口问题_第3张图片
会拦截所有controller的请求然后进一步封装返回结果的结构,原因就是在这里:将swagger的返回也拦截封装了!!导致swagger的前端无法接收到正常的响应格式,找到问题就好解决,打印出请求URI找到swagger的请求路径
【已解决】使用swagger-ui没有404,但是不显示接口问题_第4张图片

3.解决办法

然后手动添加排除路径,如果是排除路径则直接放行不封装响应信息
【已解决】使用swagger-ui没有404,但是不显示接口问题_第5张图片
最后大功告成!!!!

你可能感兴趣的:(java,spring,boot,spring)