今天在自己的springboot学习工程中增加对swagger接口文档组件的集成,参考了相关教程进行了操作之后,在尝试进入本地的swagger-ui/index.html页面时,却无法成功进入,如图所示:
如图所示,浏览器弹出了一个alert警告,其中的内容就是无法进入swagger主页的原因。最直接的原因就是:Unable to infer base url.
于是根据该报错提示,查找原因。
其中有一篇 Swagger3被拦截器拦截并报错Unable to infer base url或者Unable to render this definition_JSluck的博客-CSDN博客 导致该问题的原因是自己配置的拦截器拦截了swagger的其他接口。
但是因为我这个学习工程刚刚搭起来,并没有配置拦截器,所以该文章的解决办法并不适合我。
通过这篇文章(springboot整合swagger3报Unable to infer base url错误_rainyonelove的博客-CSDN博客)才算找到问题原因和解决办法:
问题原因:
配置的统一返回体影响了swagger3内置接口的返回数据结构,导致其无法正常解析,所以无法进入swagger主页。
解决方案:
在拦截并封装统一返回体的Advice配置类中,在`@RestControllerAdvice`注解中,将需要拦截并封装统一返回体的包路径指定出来,不要使其影响到swagger接口的返回数据。如图所示:
这里指定了controller包下的类的请求返回体才需要拦截和封装统一返回体。
效果:
参考文档:
Springboot + Swagger3 集成和配置_Drifting Kern的博客-CSDN博客_springboot swagger3
springboot 集成 swagger+Knife4j_默魔的博客-CSDN博客_knife4j freemarker模板
Swagger3被拦截器拦截并报错Unable to infer base url或者Unable to render this definition_JSluck的博客-CSDN博客
springboot整合swagger3报Unable to infer base url错误_rainyonelove的博客-CSDN博客
页面更新:2024-03-01
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号