项目场景:
springboot 前后端分离场景,当前端调取后台接口时需要配合产品文档,这里使用swagger
问题描述
springboot配置好swagger配置及接口编写后,正常访问使用
过了一段时间后因为加入了许多新的接口迭代,没有去swagger-ui查看,今天想去看一下接口问题,发现swagger-ui界面正常打开但是接口呢?没了!
原因分析:
这是什么鬼?百度查了一下大多数都是说配置的问题,于是急急忙忙的去查看一下配置
看着配置也没什么问题,而且之前明明都是好好的。
有的说是扫描包的问题,于是我将扫描包的范围扩大,测试发现还是不行。
此时的我陷入了沉思……
有的说可能是代码编写有问题,这个确实,有些许地方做的不好,没有做单元测试。难道真的是我代码的问题?
于是我将我认为我写的有问题的地方删掉发现同样不能出现。
迷茫、无助夹杂着彷徨。突然灵光一现,想起来刚加了统一返回拦截,嗯~
将刚加入的返回拦截去掉,访问,果不其然,正常了。
解决方案:
编写统一拦截实现类中,要将swagger相关的拦截过滤掉
一般都在supports方法中
@Override public boolean supports(MethodParameter returnType, Class converterType) { return !returnType.getDeclaringClass().getName().contains("springfox"); }
再次访问请求,正常!