SpringBoot整合Swagger2

本文介绍如何使用Swagger2集成到Spring Boot项目中,实现API文档的自动生成与维护。通过添加依赖、配置类、注解等方式,详细展示了部门管理接口的开发流程。Swagger2提供了丰富的功能,包括自动文档生成、接口测试等,简化了多人协作中的API文档管理和更新。

一、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版本,即可解决问题。

### SpringBoot 整合 Swagger2 示例教程 在 Spring Boot 项目中整合 Swagger2,可以通过引入相关依赖并进行适当的配置来实现。以下是具体的实现步骤和代码示例: #### 1. 添加依赖 需要在项目的 `pom.xml` 文件中添加以下依赖项: ```xml <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 文档和提供 Swagger UI 的可视化界面[^4]。 #### 2. 创建 Swagger 配置类 创建一个配置类,通过注解声明启动 Swagger 功能,并生成 `Docket` 实例: ```java 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.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; @Configuration public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Spring Boot 中使用 Swagger2 API 文档") .description("更多详情请参考官方文档") .version("1.0.0") .build(); } } ``` 上述代码中,`@Configuration` 注解声明该类为配置类,`@EnableSwagger2` 注解启用 Swagger 功能(注意:如果使用的是 Swagger3,则无需此注解)。`Docket` 实例定义了 API 文档的元数据和扫描规则[^2]。 #### 3. 启动项目并访问 Swagger UI 完成以上配置后,启动 Spring Boot 项目。默认情况下,可以通过以下地址访问 Swagger UI 界面: ``` http://localhost:8080/swagger-ui.html ``` 如果使用的是 Swagger3,则访问地址可能为: ``` http://localhost:8080/swagger-ui/ ``` #### 4. 测试接口 在控制器中定义一些测试接口,例如: ```java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api") public class ExampleController { @GetMapping("/hello") public String hello() { return "Hello, Swagger!"; } } ``` 启动项目后,在 Swagger UI 界面中可以查看并测试该接口。 --- ### 注意事项 - 如果项目中启用了 `@EnableWebMvc` 或自定义了 `WebMvcConfigurer`,可能会导致 Swagger 不生效。此时需要手动配置静态资源路径[^3]。 - 确保所有依赖版本一致,避免因版本不兼容导致的问题。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值