> 文章列表 > 【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】

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

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

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

目录

  • 效果预览:
  • 1.引入依赖,修改pom文件
  • 2.创建配置文件SwaggerConfig
  • 3.修改spring-mvc.xml
  • 4.配置运行
  • 5.swagger使用方法
  • 6.彩蛋皇榜

效果预览:

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

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 {@Beanpublic 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解析就会如下图所示:
【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】
添加后是默认界面这样的:
【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】

4.配置运行

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

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

如下图所示:
【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】
【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】
配置完成后,swagger使用界面如下所示结构:
【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】
但是不难发现,为啥一个接口那么多行不同的请求方式,其实主要是你没有设置请求方式是啥,只要你设置了就可以展示一个你指定的,如下所示设置方法:
添加:method = RequestMethod.POST

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

5.swagger使用方法

点击对应的接口名,然后就会展开,我用查询为例,点击try it out按钮
【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】
然后点击Execute按钮进行测试,其中上面的入参是可以添加的。
【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】
如下所示我通过入参id为1查询了一条数据:
【swagger使用详解】『CSDN精选』java如何集成swagger进行接口测试【博主亲测有效】

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

6.彩蛋皇榜

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