一、Swagger2概述
spring-boot作为当前最为流行的Java web开发脚手架,越来越多的开发者选择用其来构建企业级的RESTFul API接口。这些接口不但会服务于传统的web端(b/s),也会服务于移动端。在实际开发过程中,这些接口还要提供给开发测试进行相关的白盒测试,那么势必存在如何在多人协作中共享和及时更新API开发接口文档的问题。
假如你已经对传统的wiki文档共享方式所带来的弊端深恶痛绝,那么尝试一下Swagger2 方式,一定会让你有不一样的开发体验。
使用 Swagger 集成文档具有以下几个优势:
- 功能丰富 :支持多种注解,自动生成接口文档界面,支持在界面测试API接口功能;
- 及时更新 :开发过程中花一点写注释的时间,就可以及时的更新API文档,省心省力;
- 整合简单 :通过添加pom依赖和简单配置,内嵌于应用中就可同时发布API接口文档界面,不需要部署独立服务。
二、案例
【1】依赖
<!-- Swagger2文档 -->
<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>
<!-- web启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
【2】Swagger2配置类
@Configuration
@EnableSwagger2
public class Swagger2Configuration {
}
【3】实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Department {
/**
* 部门Id
*/
@ApiModelProperty(value = "部门ID",required = false)
private Integer deptId;
/**
* 部门名字
*/
@ApiModelProperty(value = "部门名字")
private String deptName;
/**
* 部门创建时间
*/
@ApiModelProperty(value = "部门创建时间",required = false)
private Date createDate;
/**
* 部门修改时间
*/
@ApiModelProperty(value = "部门修改时间",required = false)
private Date updateDate;
【4】控制器
@RestController
@Api(tags = "部门管理相关接口")
public class DepartmentController {
@Resource
private DepartmentService departmentServiceImpl;
@GetMapping("/addDept")
@ApiOperation("添加部门的接口")
public String addDepartment(Department department){
int i = departmentServiceImpl.addDepartment(department);
return "<h1>成功添加一条部门数据!</h1>";
}
@GetMapping("/delDept")
@ApiOperation("根据部门名字删除部门的接口")
public String delDepartment(String deptName){
int i = departmentServiceImpl.removeDepartment(deptName);
return "<h1>成功删除一条部门数据!</h1>";
}
@GetMapping("/updDept")
@ApiOperation("修改部门的接口")
public String updDepartment(Department department){
int i = departmentServiceImpl.replaceDepartment(department);
return "<h1>成功修改一条部门数据!</h1>";
}
@GetMapping("/getAllDept")
@ApiOperation("获取所有部门的接口")
public List<Department> getAllDepartment(){
List<Department> deptList = departmentServiceImpl.findUserList();
return deptList;
}
}
【5】启动SpringBoot主程序后,访问网址http://localhost:8080/swagger-ui.html

这里只贴了部门管理的控制器和接口的代码,员工的也是一样,我就不贴了。
【6】实体类、控制器、处理方法上面的注解,都是对其进行描述,下面对这些注解作说明

【7】@ApiResponses参数

【8】接口测试
(1)点击控制器

(2)点击测试方法

(3)点击进行测试

(4)填写相关参数后点击执行,由于其他三个参数设置了非必须,这里只填一个部门名字即可

(5)执行完成获得响应数据在下面的Response。
三、补充
(1)这里只是展示一下通过Swagger2对接口管理,数据库连接和业务代码等就不贴出来了。
(2)还有一个是可能进入这个网站时控制台就报错一堆,数字格式异常,原因是实体类的属性如“id”是int类型,但是它有默认值是String类型为"",但是这不影响测试。也可以将Swagger2两个依赖换成1.5.21版本,即可解决问题。
本文介绍如何使用Swagger2集成到Spring Boot项目中,实现API文档的自动生成与维护。通过添加依赖、配置类、注解等方式,详细展示了部门管理接口的开发流程。Swagger2提供了丰富的功能,包括自动文档生成、接口测试等,简化了多人协作中的API文档管理和更新。
2527

被折叠的 条评论
为什么被折叠?



