1.起因

多模块项目结构如下:
swagger提取为公共模块
ResponseHandler负责处理统一结果返回,SwaggerConfig配置swagger,controller和启动类与公共模块不在一个包下
在这里插入图片描述

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

2.发现问题

自己调试半天没有找到问题所在,最后在同学的帮助下,发现问题居然出现在ResponseHandler统一结果返回中
原本的代码是这样的:
在这里插入图片描述
会拦截所有controller的请求然后进一步封装返回结果的结构,原因就是在这里:将swagger的返回也拦截封装了!!导致swagger的前端无法接收到正常的响应格式,找到问题就好解决,打印出请求URI找到swagger的请求路径
在这里插入图片描述

3.解决办法

然后手动添加排除路径,如果是排除路径则直接放行不封装响应信息
在这里插入图片描述
最后大功告成!!!!