在使用Swagger2 的时候遇到很多坑爹的问题,这里我都会进行分享,还有一些Swagger2的 进阶的知识。
1.解决@ApiImplicitParam 没有配置paramType导致的传入设置数据问题会出现哪些问题。
1> 数据转换出错:(Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string)
不配置paramtype 会导致传过来的参数有问题
传过来的参数会是{id}而不是具体的数字
2> 取出的数据时“{你的参数名}”(取出的数据时{id}而不是具体的数据)
(一般paramtype 和@RequestParam和@PathVariable配置的问题)
原因是,首先看看我们项目中的静态资源目录
而swagger2 的swagger2-ui.html 文件是在引入的包中的。
从上面两张图我们可以看出是由于读取的静态资源文件的路径是不同的导致无法读取到。
解决办法:添加一个 webmvc Resource的映射就可以了。
3.有些额外的需求是传入的是多个参数,我想将它封装成对象
这里还要注意一点就是Test 类里面的参数需要说明这里只需要添加几个注解就可以实现了。
这样的话数据就能够对的上了(注意:Test 里面加注解主要是参数上给一个说明)
4.怎样设置返回数据的说明
Test 类:
controller:
显示的返回数据的说明:
还可以在这里写String
5.还要注意了swagger2的实现是 springfox swagger 这个工具需要的环境是jdk1.7 以上的运行环境,原因是spring boot 1.4.4集成的tomcat8 不然的话会出现启动报错的情况。
这是我目前总结出来的5 个问题,我会不定期增添我在工作中遇到的问题。
源码的地址:https://git.oschina.net/saicyc/springboot-swagger2