谷粒学院-整合Swagger进行接口测试

一、Swagger2介绍

前后端分离开发模式中,api文档是最好的沟通方式。

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的Web服务。

  1. 及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)
  2. 规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)
  3. 一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)
  4. 可测性 (直接在接口文档上进行测试,以方便理解业务)

二、配置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

经验分享 程序员 微信小程序 职场和发展