码迷,mamicode.com
首页 > 其他好文 > 详细

接swagger很傻x的一次教训

时间:2020-03-12 21:58:14      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:str   时间   ring   接口   打破   bsp   定义   entity   rest   

这两天在搭建项目用到了swagger,遇到了不少坑,可以说是完全没必要踩到的坑,却让我浪费了许久时间,确实很难受,记录下来,以此为教训!

先说明下: 版本号为:springboot2.x、swagger2.7+ 我遇到了很多问题,第一个: 技术图片

上面那个错表示swagger没有配置好,即配置问题

找原因:找swagger-ui.html 请求分发过程, 技术图片 没有找到swagger-ui的hmtl,返回error,,紧接着,看一下页面报404的接口,去掉null访问一下, 技术图片

访问成功!

技术图片 于是在springmvc的源码上定位该接口的bean,即public org.springframework.http.ResponseEntity springfox.documentation.swagger.web.ApiResourceController.uiConfiguration() 技术图片

定位到该接口,查看其源码,即 技术图片

于是在请求一下,得到它的数据,以及返回值!这个时候得到了一个关键的线索点,它的返回值!!! 在查看了项目的统一返回值包装类之后恍然大悟,这特么是我的封装类将swagger本身的返回值结构打破了,所以swagger没有解析到 正确的返回值,所以会报这个错,蓝瘦~ 技术图片

如下,是我们的返回值和swagger自己定义的返回值: 技术图片 技术图片

结果已经很明了了!就是我们的包的作用范围的原因,应该缩小一下范围,即加入下面代码: java @RestControllerAdvice(basePackages = "com.xxxxx.controller")

得此解决!

当然  还有另外一个原因,就是swagger的配置问题,一定要扫描当前controller的包,不然也是没有

接swagger很傻x的一次教训

标签:str   时间   ring   接口   打破   bsp   定义   entity   rest   

原文地址:https://www.cnblogs.com/ChoviWu/p/12482809.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!