学习目标:
- 半小时熟练使用接口测试文档
知识梳理:
在实现功能之前我们要知道为什么要学习这个技术,这个技术能帮我们做什么,以下是我个人看法:第一点作为一个后台开发人员需要根据前端页面返回对应的数据,后台开发一般是看不到前端页面的,现在不是流行前后端分离开发嘛,那后台怎么返回正确的数据呢,就需要使用到这个技术对接口进行测试接口返回的数据是否跟预期一样,从而避免数据返回错误。
学习内容:
- 配置swagge-ui
- 掌握 swagge-ui常用注解
开始整合
第一步:引入需要的依赖
<!--swagger-ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
第二步:编写swagger-ui配置类
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;
/**
* @Author:szm
* @Date: 2022/4/20
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//为当前包路径,控制器类包
.apis(RequestHandlerSelectors.basePackage("com.example.sys.controller"))
.paths(PathSelectors.any())
.build();
}
//构建 api文档的详细信息函数
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//页面标题
.title("测试平台API接口文档")
//创建人
.contact(new Contact("szm", "http://www.baidu.com",
"2992503855@qq.com"))
//版本号
.version("1.0")
//描述
.description("系统API描述")
.build();
}
}
1.swagger-ui常用注解
1.1类的描述
注解 | 含义 |
---|---|
@Api | 该类的解释说明 |
1.2方法和方法参数的描述
注解 | 含义 |
---|---|
@ApiOperation | 方法的解释说明 |
@ApiImplicitParams | 方法参数的解释说明 |
@ApiImplicitParam | 用于指定单个参数的说明 |
1.3实体类的描述
注解 | 含义 |
---|---|
@ApiModel | 作用于对于的实体类上 |
@ApiModelProperty | 用在实体类的属性上面,说明此属性的的含议 |
2.部分示例
@Api(tags = "用户名测试类")
public class UserController {
}
@Controller
@Api(tags = "用户名测试类")
public class UserController {
@ApiOperation(value="测试方法说明", notes="方法的备注说明")
@GetMapping("test")
public String test(@ApiParam("用户姓名") String name) {
return name;
}
}
@ApiModel(value = "用户类")
public class User implements Serializable {
private Integer id;
@ApiModelProperty(value = "用户名")
private String username;
@ApiModelProperty(value = "用户密码")
private String password;
}
3.测试效果
启动项目swagger-ui访问地址是:http://localhost:端口号/swagger-ui.html
写的这个测试方法也生效了
实体类的说明也出来了