『CSDN精选-swagger集成使用』java如何集成swagger进行接口测试【博主亲测有效】

写在前面】对于我前端开发出身的写接口并测试的话,我还是更喜欢用swagger,主要它那种界面用起来比较的舒服,当然很多人还是习惯性的用post进行测试,接下来我就来和大家说说怎么将swagger引入到你的项目中去。及swagger该如何使用。
涉及知识点:java集成swagger,swagger测试接口,swagger的使用,前后端分离测试接口,如何引入swagger。No operations defined in spec! 解决方法

效果预览:

在这里插入图片描述

1.引入依赖,修改pom文件

在我们的pom.xml文件中加入下面所示的代码,其主要目的就是支撑swagger依赖包的引入,可以理解为前端引入插件的概念

<!-- swagger2  start -->
    <dependency>
      <groupId>com.fasterxml</groupId>
      <artifactId>classmate</artifactId>
      <version>1.4.0</version>
    </dependency>
    <dependency>
      <groupId>io.swagger</groupId>
      <artifactId>swagger-models</artifactId>
      <version>1.5.21</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
      <exclusions>
        <exclusion>
          <groupId>io.swagger</groupId>
          <artifactId>swagger-models</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>
    <!--  swagger导出PDF/HTML所需依赖 START-->
    <dependency>
      <groupId>io.github.swagger2markup</groupId>
      <artifactId>swagger2markup</artifactId>
      <version>1.3.1</version>
      <exclusions>
        <exclusion>
          <artifactId>jackson-dataformat-yaml</artifactId>
          <groupId>com.fasterxml.jackson.dataformat</groupId>
        </exclusion>
        <exclusion>
          <artifactId>guava</artifactId>
          <groupId>com.google.guava</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- swagger2  end -->

2.创建配置文件SwaggerConfig

在utils公共文件下创建一个swagger文件,然后在里面放一个SwaggerConfig.java文件,里面赋值如下内容,主要是指向swagger的一些版本和界面。

package com.init.inithdd.utils.swagger;

import io.swagger.annotations.ApiOperation;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2 // 重要!
//@EnableWebMvc
@ComponentScan(basePackages = {
    
     "com.init.inithdd" }) // Swagger扫描的package
public class SwaggerConfig {
    
    
    @Bean
    public Docket api() {
    
    
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()//选择哪些路径和API会生成document
                //扫描指定包中的swagger注解
                //.apis(RequestHandlerSelectors.basePackage("com.hc"))
                //扫描所有有注解的api,用这种方式更灵活
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                //扫描所有的api(没有添加注解也可以扫描出来),用这种方式更直接
                //.apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 这是匹配api的信息
     *
     * @return
     */
    private ApiInfo apiInfo() {
    
    
        return new ApiInfoBuilder()
                // 大标题
                .title("API接口文档")
                // 描述
                .description("API接口测试")
                // 版本号
                .version("1.0.0")
                .termsOfServiceUrl("").license("").licenseUrl("").build();
    }
}

3.修改spring-mvc.xml

在该文件内新增swagger测试访问地址映射,如下所示:

<!-- 支持swagger start -->
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />
<!-- 支持swagger end -->

切记】一定要添加下面的代码,不然就会出现问题,其主要目的就是添加自定义的swagger配置类,不然的话就会出现swagger只有界面没有接口的问题,这个地方困扰我好一会儿,网上找原因都是瞎扯淡。

<bean class="com.init.inithdd.swagger.SwaggerConfig"></bean>

没有添加bean解析就会如下图所示:
在这里插入图片描述
添加后是默认界面这样的:
在这里插入图片描述

4.配置运行

配置完上述三个文件后,我们启动我们的项目后,为了让swagger调试更加规范化,我们可以针对每个controller接口处添加如下两个注释代码,一个是大的controller类说明,另一个是类里面具体的接口文字说明:

@Api(value = "/userCon", tags = "用户管理")
@ApiOperation(value = "查询用户列表(ID)")

如下图所示:
在这里插入图片描述
在这里插入图片描述
配置完成后,swagger使用界面如下所示结构:
在这里插入图片描述
但是不难发现,为啥一个接口那么多行不同的请求方式,其实主要是你没有设置请求方式是啥,只要你设置了就可以展示一个你指定的,如下所示设置方法:
添加:method = RequestMethod.POST

在这里插入图片描述
在这里插入图片描述

5.swagger使用方法

点击对应的接口名,然后就会展开,我用查询为例,点击try it out按钮
在这里插入图片描述
然后点击Execute按钮进行测试,其中上面的入参是可以添加的。
在这里插入图片描述
如下所示我通过入参id为1查询了一条数据:
在这里插入图片描述

到这里我们的swagger使用就结束了,后面get和delete方式也是一样的使用规则,希望大家不迷路。

6.彩蛋皇榜

倾心打造佳作,愿解君之惑,如若有幸,盼君上榜助阵,特此敬谢!
皇榜入口点击此处

猜你喜欢

转载自blog.csdn.net/hdp134793/article/details/130016678
今日推荐