谷粒学院-整合Swagger进行接口测试
一、Swagger2介绍
前后端分离开发模式中,api文档是最好的沟通方式。
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的Web服务。
- 及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)
- 规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)
- 一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)
- 可测性 (直接在接口文档上进行测试,以方便理解业务)
二、配置Swagger2
1、创建common模块
在guli-parent下创建模块common
引入相关依赖
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided </scope>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<scope>provided </scope>
</dependency>
<!--lombok用来简化实体类:需要安装lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided </scope>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<scope>provided </scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<scope>provided </scope>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- spring2.X集成redis所需common-pool2
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
</dependency>-->
</dependencies>
删掉src文件夹
在common下面创建子模块service-base
在模块service-base中,创建swagger的配置类
创建包com.nanjing.servicebase.config,创建类SwaggerConfig
在模块service模块中引入service-base
在service_edu启动类上添加注解,设置包的扫描规则
启动EduApplication,测试:
(固定写法,端口号+swagger-ui.html)
报错啊,悲剧了~~~
网上查找资料,方法一在
EduApplication上加@EnableSwagger2(这种方法不行,swagger会带出一堆无关的信息)
方法二说扫描不到包,但是我配置没错啊。
最后无奈,我怀疑是版本问题,只好降低SpringBoot的版本,把2.5.10变成2.2.10
测试OK
接着我又把版本还原为2.5.10,竟然也可以,奇怪呀,看来不是版本问题
API模型
定义接口说明和参数说明
定义在类上:@Api
定义在方法上:@ApiOperation
定义在参数上:@ApiParam
