现在测试都提倡自动化测试,那我们作为后台的开发人员,也得进步下啊,以前用postman来测试后台接口,那个麻烦啊,一个字母输错就导致测试失败,现在swagger的出现可谓是拯救了这些开发人员,便捷之处真的不是一点两点。
1、swagger是什么?
简单说下,它的出现就是为了方便进行测试后台的restful形式的接口,实现动态的更新,当我们在后台的接口修改了后,swagger可以实现自动的更新,而不需要认为的维护这个接口进行测试。
2、springboot与swagger的集成:
第一步:jar包的引入:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
第二步:swagger的配置启动类编写:
要使用swagger要进行一些配置,这个在界面的图上是可以显示的:类似于说明书:在这个类中我们会使用注解来进行启动swagger:
package com.springboot.swagger.springbooswagger.swaggerConfig;
import org.springframework.context.annotation.Bean;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
Docket createSwaggerApi(){
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
//.apis(RequestHandlerSelectors.basePackage("com.springboot.swagger.springbooswagger.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
//页面标题
.title("pring Boot 测试使用 Swagger2 构建RESTful API")
//创建人
.contact(new Contact("bobey","http://www.baidu.com", ""))
//版本号
.version("1.0")
//描述
.description("API 描述")
.build();
}
}
备注:在
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
//.apis(RequestHandlerSelectors.basePackage("com.springboot.swagger.springbooswagger.controller"))
.paths(PathSelectors.any())
.build();
指定apis(RequestHandlerSelectors.basePackage(“com.springboot.swagger.springbooswagger.controller”) 包时只要到restful 那层包路径即可
第三步:使用swagger来进行模拟测试:
使用swagger2来进行测试接口主要是在哪些类中使用:这里我们依然选择在controller层:
package com.springboot.swagger.springbooswagger.controller;
import com.springboot.swagger.springbooswagger.pojo.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Api("swaggerDemoController相关的api")
public class HelloController {
@ApiOperation(value = "添加用户",notes = "HelloWorld",httpMethod = "GET")
@ApiParam(required = true,name = "paramData",value = "用户信息 json 数据")
@RequestMapping(value = "/hello")
public User hello(String paramData){
User userBean = new User();
userBean.setName("测试用户"); userBean.setOtherName(paramData);
return userBean;
}
}
备注: 如果没有指定请求方式为什么请求方式会显示如下
访问路径:http://localhost:7020/swagger/swagger-ui.html
显示结果: