使用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