`
白马探
  • 浏览: 14637 次
社区版块
存档分类
最新评论

Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2

 
阅读更多

 

Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
 

 

1. 引言

各位在开发的过程中肯定遇到过被接口文档折磨的经历,由于 RESTful 接口的轻量化以及低耦合性,我们在修改接口后文档更新不及时,导致接口的调用方(无论是前端还是后端)经常抱怨接口与文档不一致。程序员的特点是特别不喜欢写文档,但是又同时特别不喜欢别人不写文档。所以 API 文档工具这时就应运而生了,本篇文章我们将会介绍 API 文档工具 Swagger2 。(了解源码可+求求: 1791743380)

2. 快速上手

既然 Swagger2 是一个 API 文档工具,我们就在代码中看一下这个文档工具在 Spring Boot 中是如何使用的吧。

2.1 引入依赖

代码清单:spring-boot-swagger/pom.xml

Java代码  收藏代码
  1. <!-- swagger工具包 -->  
  2. <dependency>  
  3.     <groupId>io.springfox</groupId>  
  4.     <artifactId>springfox-swagger2</artifactId>  
  5.     <version>${swagger.version}</version>  
  6. </dependency>  
  7. <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->  
  8. <dependency>  
  9.     <groupId>io.springfox</groupId>  
  10.     <artifactId>springfox-swagger-ui</artifactId>  
  11.     <version>${swagger.version}</version>  
  12. </dependency>  

 

这里选用的版本是 2.9.2 ,同时也是目前最新的一个版本。

2.2 配置类 SwaggerConfig

代码清单:spring-boot-swagger/src/main/java/com/springboot/springbootswagger/config/SwaggerConfig.java

 
Java代码  收藏代码
  1. @Configuration  
  2. @EnableSwagger2  
  3. public class SwaggerConfig {  
  4.     @Value("${swagger.show}")  
  5.     private boolean swaggerShow;  
  6.   
  7.     @Bean  
  8.     public Docket swaggerSpringMvcPlugin() {  
  9.         return new Docket(DocumentationType.SWAGGER_2)  
  10.                 .enable(swaggerShow)  
  11.                 .apiInfo(apiInfo())  
  12.                 .select()  
  13.                 .apis(RequestHandlerSelectors.basePackage("com.springboot.springbootswagger"))  
  14.                 .paths(PathSelectors.any())  
  15.                 .build();  
  16.     }  
  17.   
  18.     private ApiInfo apiInfo() {  
  19.         return new ApiInfoBuilder()  
  20.                 .title("Swagger2 演示接口RESTful APIs")  
  21.                 .version("1.0")  
  22.                 .build();  
  23.     }  
  24. }  
 

由于 Swagger 是一个 API 文档工具,我们肯定不能在生产环境中开启,所以笔者这里在配置中增加了 swagger.show ,在不同环境的配置文件中配置不同的值,或者如果有配置中心,这个配置可以添加到配置中心中,笔者这里示例简单起见就添加在 application 配置文件中了。这样,我们就可以优雅的开启或者关闭 Swagger 的功能。

2.3 实体类

代码清单:spring-boot-swagger/src/main/java/com/springboot/springbootswagger/model/User.java

Java代码  收藏代码
  1. @Data  
  2. @AllArgsConstructor  
  3. @NoArgsConstructor  
  4. @ApiModel(value = "用户演示类", description = "请求参数类")  
  5. public class User {  
  6.     @ApiModelProperty(example = "1", notes = "用户ID")  
  7.     private Long id;  
  8.     @ApiModelProperty(example = "geekdigging", notes = "用户名")  
  9.     private String nickName;  
  10.     @ApiModelProperty(example = "1570689455000", notes = "创建时间")  
  11.     private Date createDate;  
  12.     @ApiModelProperty(example = "18", notes = "用户年龄")  
  13.     private Integer age;  
  14. }  

 

Swagger 注解详细说明:

API 作用范围 使用位置

@ApiModel 描述返回对象的意义 用在返回对象类上
@ApiModelProperty 对象属性 用在出入参数对象的字段上
@Api 协议集描述 用于 controller 类上
@ApiOperation 协议描述 用在 controller 的方法上
@ApiResponses Response集 用在 controller 的方法上
@ApiResponse Response 用在 @ApiResponses 里边
@ApiImplicitParams 非对象参数集 用在 controller 的方法上
@ApiImplicitParam 非对象参数描述 用在 @ApiImplicitParams 的方法里边

2.4 Controller

代码清单:spring-boot-swagger/src/main/java/com/springboot/springbootswagger/controller/UserController.java

Java代码  收藏代码
  1. @Api(value = "用户管理演示")  
  2. @RestController  
  3. public class UserController {  
  4.   
  5.     @Autowired  
  6.     UserService userService;  
  7.   
  8.     @GetMapping("/getUserById/{id}")  
  9.     @ApiOperation(value = "获取用户信息", notes = "根据用户 id 获取用户信息", tags = "查询用户信息类")  
  10.     public User getUserById(@PathVariable Long id) {  
  11.         return userService.getUserById(id);  
  12.     }  
  13.   
  14.     @GetMapping("/getAllUsers")  
  15.     @ApiOperation(value = "获取全部用户信息", notes = "获取全部用户信息", tags = "查询用户信息类")  
  16.     public List<User> getAllUsers() {  
  17.         return userService.getAllUsers();  
  18.     }  
  19.   
  20.     @PostMapping("/saveUser")  
  21.     @ApiOperation(value = "新增/修改用户信息")  
  22.     public User saveUser(@RequestBody User user) {  
  23.         return userService.saveUser(user);  
  24.     }  
  25.   
  26.     @DeleteMapping("/deleteById")  
  27.     @ApiOperation(value = "删除用户信息", notes = "根据用户 id 删除用户信息")  
  28.     public String deleteById(@PathVariable Long id) {  
  29.         userService.deleteById(id);  
  30.         return "success";  
  31.     }  
  32. }  

 

  • @ApiOperation 中的 tag 标签可用于接口分组

2.5 展示结果如下

启动工程,打开浏览器访问: http://localhost:8080/swagger-ui.html ,可以看到如下页面:

 

Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
 这张图中可以看到我们的 tag 分组。

 

Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
 

 

 

Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
分享到:
评论

相关推荐

    Spring Boot技术知识点:Spring Boot2.7以上支持使用Swagger3

    在Spring Boot 2.7及以上版本,它开始支持Swagger 3,这是一个强大的API文档工具,帮助开发者构建清晰、易于理解的RESTful API接口。 Swagger 3,也称为OpenAPI Specification 3.0,是Swagger的最新版本,基于...

    Spring Boot中使用Swagger2构建强大的RESTful API文档

    为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又...

    Spring Boot集成 Swagger2 展现在线接口文档

    Spring Boot 集成 Swagger2 展现在线接口文档 Spring Boot 是一个基于 Java 的框架,用于快速构建生产级别的应用程序。Swagger 是一个流行的 API 文档工具,能够生成在线接口文档,帮助开发人员和调用接口的人员更...

    Spring Boot的自动化配置实现swagger2引入spring boot生成API文档.docx

    ### Spring Boot的自动化配置实现swagger2引入spring boot生成API文档 #### 一、Spring Boot与Swagger集成概述 在现代Web开发中,API文档对于确保良好的系统间通信至关重要。随着微服务架构的兴起,API文档的需求...

    2023最新《Spring Boot基础教程》

    Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档 Spring Boot 2.x基础教程:JSR-303实现请求参数校验 Spring Boot 2.x基础教程:Swagger接口分类与各元素排序问题详解 Spring Boot 2.x基础教程:Swagger...

    开源:API文档汇总管理工具Swagger Butler

    通过构建一个简单的Spring Boot应用,增加一些配置就能将现有整合了Swagger的Web应用的API文档都汇总到一起,方便查看与测试。 swagger-butler-core-2.0.1.jar swagger-butler-core-2.0.1-javadoc.jar swagger-...

    Spring Boot 2.7.5 集成 Swagger 3

    Spring Boot 2.7.5 是一...通过这种方式,开发者可以构建一个交互式的API文档,提高开发效率,促进前后端协作。在实际项目中,还可以进一步细化配置,比如添加分组、隐藏敏感信息、设置安全策略等,以满足不同的需求。

    Spring Boot Swagger2 构建RESTful API

    2. 配置Swagger2:接下来,我们创建一个配置类,通过`@EnableSwagger2WebMvc`注解启用Swagger2。 ```java @Configuration @EnableSwagger2WebMvc public class SwaggerConfig { } ``` 3. 创建Docket对象:在配置类...

    Swagger3生成API文档配置(Demo)

    总结,Swagger3是Spring Boot项目中用于生成API文档的强大工具,通过注解和配置,我们可以轻松地创建和管理RESTful API的文档。通过运行应用,我们可以利用Swagger UI进行接口的测试和调试,极大地提高了开发效率和...

    SpringBoot搭建API文档插件Swagger并美化.docx

    在本文中,我们将深入探讨如何使用SpringBoot框架搭建API文档,并使用Swagger进行美化。Swagger是一个强大的工具,可以方便地为RESTful API生成交互式文档,从而帮助开发者更好地理解和使用你的API。 首先,我们...

    28-Spring Boot API可视化Swagger1

    Spring Boot API 可视化工具Swagger是一个强大的框架,它能够帮助开发者轻松地创建、管理和维护API文档。在软件开发过程中,API文档对于确保团队间沟通的顺畅以及与外部合作伙伴的协作至关重要。然而,手动编写和...

    spring boot 2.6.11+springcloud Swagger3构建微服务项目源码

    在Spring Boot应用中集成Swagger3,我们可以生成清晰的API文档,方便开发者理解和使用接口。Swagger UI允许我们在浏览器中直接测试API,极大地提高了开发效率和用户体验。Swagger3相比于之前的版本,提供了更多强大...

    Spring Boot 中使用 Swagger2 构建 RESTful APIs

    Spring Boot 中使用 Swagger2 构建 RESTful APIs Swagger 是一系列 RESTful API 的工具,通过 Swagger 可以获得项目的交互式文档,客户端 SDK 的自动生成等功能。Swagger 的目标是为 REST APIs 定义一个标准的、与...

    Spring Boot中使用Swagger2构建RESTful APIs

    Swagger是一个广泛使用的...以上是在Spring Boot中使用Swagger2构建RESTful APIs的相关知识点。了解和掌握这些知识点,可以帮助开发者更高效地开发、测试和维护RESTful API,同时使得API文档的管理更加规范化和自动化。

    spring boot 整合 swagger2

    Swagger2是一个流行的API开发工具,它可以自动生成API文档,方便开发者理解和使用API。在Spring Boot项目中整合Swagger2,可以让我们轻松地管理和展示API接口,极大地提高了开发效率和协作体验。 首先,我们需要在...

    Spring Boot 整合Swagger实现API管理-教案.pdf

    - springfox-swagger2:Swagger的核心依赖包,提供了Swagger API文档的生成能力。 - springfox-swagger-ui:提供了可视化的Swagger文档界面,使得开发者可以通过Web页面浏览API文档。 - swagger-bootstrap-ui:提供...

    Spring boot+swagger(demo)

    - 引入依赖:首先,你需要在Spring Boot的`pom.xml`文件中引入Swagger的相关依赖,如`springfox-swagger2`和`springfox-swagger-ui`。 - 配置Swagger:创建一个配置类,使用`@EnableSwagger2`注解开启Swagger功能...

    spring Boot 集成swagger2全过程(代码包含集成Spring Security+ JWT)

    Swagger2是一个流行的API文档工具,它允许开发者以交互式方式展示和测试RESTful API。Spring Security是Java平台上的安全框架,而JWT则是一种轻量级的身份验证和授权机制。 首先,我们需要在Spring Boot项目中添加...

    java web api文档生成工具.继Swagger以后,又一个用法更简单的APIDoc生成中间件

    而"java web api文档生成工具",特别是像描述中提到的JApiDocs,旨在提供一种更简洁、更直观的方式来生成API文档,尤其对于使用Spring Boot框架的开发者来说,使用体验更加友好。 JApiDocs是一款基于Spring Boot的...

    spring-boot集成swagger

    将 Swagger 集成到 Spring Boot 中,可以实现自动化地生成 API 文档,提高开发效率。 **一、Spring Boot 集成 Swagger 前置知识** 1. **Spring Boot**:基于 Spring 框架的快速开发工具,提供自动配置、内嵌服务器...

Global site tag (gtag.js) - Google Analytics