使用swagger生成API说明文档
本文由个人总结,如需转载使用请标明原著及原文地址
没有导出!!!!!不要整天给我留言导出呢,那个是你们百度的时候下面的推荐文章带的关键字,要做导出从swagger取数据,用Thymeleaf这类模板引擎生成word文档
SwaggerDemo,jar包使用maven进行管理,还没了解maven的小伙伴可能有无法使用的情况
在做前后端分离的项目时,后端人员总是要写接口文档给其他使用者,大家都知道,写接口文档是一件吃力不讨好的事,而swagger就是为了解决这个问题而存在的,不仅能提供接口文档,还能提供简单的传参测试
要使用swagger,首先你要有一个spring项目
1.导包
我这使用maven统一管理jar包,在pom.xml中加入上面两个dependency,maven就能自动下载对应jar包,不了解maven的小伙伴自行在百度上找jar包,然后手动导入项目
springfox-swagger2-vesion.jar
springfox-swagger-ui-vesion.jar
2.写一个swagger配置类
创建的SwaggerConfig要继承WebMvcConfigurationSupport
@EnableSwagger2 swagger2启动注解
@ComponentScan(basePackages = {"cn.ycyy.controller"}) 指定需要生成API文档的类所在的包路径
@Configuration 声明这是一个配置类
createRestApi方法不需要更改,主要用于swagger的初始化设置,包括扫描API注解路径等,用我提供的createRestApi默认扫描当前项目全部路径,这里的扫描与上面的@ComponentScan不同,这里扫描的不会显示在swagger-ui(swaggerAPI文档可视化界面,最后会说)上
apiInfo里的参数设置对应效果如下图所示
SwaggerConfig文件必须放在spring注解扫描器能扫描到的位置,例如说我的项目都放在cn.ycyy项目下,我指定扫描路径cn.ycyy那么spring就能把整个项目的注解都扫描到
然后将项目启动发布到tomcat上,就能访问swaggerAPI了
访问的URL也是个固定的格式
http://ip地址:端口/项目名/swagger-ui.html#/
3.配置api生成
在先前说了,这里只会显示@ComponentScan(basePackages = {"cn.ycyy.controller"}),这个路径下的类生成的API
我的测试案例中只写了一个UserController所以这里只显示,UserController及里面的方法
UserController代码如下
在类上加上@Api注解
以下参数可不指定
在方法上加上@ApiOperation注解
以下参数可不指定
如果方法需要前端传递参数,可使用@ApiParam注解
如果方法用对象入参的话,在实体类中对属性加@ApiModelProperty注解
例如我有个方法的参数用User,那么我User类如下配置
效果如下所示
API文档中会将User自动分解成User的属性
4.注解全参数
以下是swagger2注解中的全参数,有兴趣可以都试试
@Api
Api 标记可以标记一个Controller类做为swagger 文档资源,使用方式
@ApiOperation每一个url资源的定义,使用方式
@ApiParam标记
public ResponseEntity createUser(@RequestBody @ApiParam(value = “user”, required = true) User user)
@ApiImplicitParam对容器的描述
@ApiResponse