`
Swifie
  • 浏览: 10688 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Spring Boot : 优雅的使用 API 文档工具 Swagger2

 
阅读更多

 

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

 

1. 引言

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

2. 快速上手

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

2.1 引入依赖

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

<!-- swagger工具包 -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${swagger.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${swagger.version}</version>
</dependency>

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

2.2 配置类 SwaggerConfig

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

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Value("${swagger.show}")
    private boolean swaggerShow;

    @Bean
    public Docket swaggerSpringMvcPlugin() {
        return new Docket(DocumentationType.SWAGGER_2)
                .enable(swaggerShow)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.springboot.springbootswagger"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Swagger2 演示接口RESTful APIs")
                .version("1.0")
                .build();
    }
}

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

2.3 实体类

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

@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "用户演示类", description = "请求参数类")
public class User {
    @ApiModelProperty(example = "1", notes = "用户ID")
    private Long id;
    @ApiModelProperty(example = "geekdigging", notes = "用户名")
    private String nickName;
    @ApiModelProperty(example = "1570689455000", notes = "创建时间")
    private Date createDate;
    @ApiModelProperty(example = "18", notes = "用户年龄")
    private Integer age;
}

 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

@Api(value = "用户管理演示")
@RestController
public class UserController {

    @Autowired
    UserService userService;

    @GetMapping("/getUserById/{id}")
    @ApiOperation(value = "获取用户信息", notes = "根据用户 id 获取用户信息", tags = "查询用户信息类")
    public User getUserById(@PathVariable Long id) {
        return userService.getUserById(id);
    }

    @GetMapping("/getAllUsers")
    @ApiOperation(value = "获取全部用户信息", notes = "获取全部用户信息", tags = "查询用户信息类")
    public List<User> getAllUsers() {
        return userService.getAllUsers();
    }

    @PostMapping("/saveUser")
    @ApiOperation(value = "新增/修改用户信息")
    public User saveUser(@RequestBody User user) {
        return userService.saveUser(user);
    }

    @DeleteMapping("/deleteById")
    @ApiOperation(value = "删除用户信息", notes = "根据用户 id 删除用户信息")
    public String deleteById(@PathVariable Long id) {
        userService.deleteById(id);
        return "success";
    }
}

 

  • @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生成API文档.docx

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

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

    Swagger2 是一个功能强大且易用的 API 文档工具,能够帮助开发人员和调用接口的人员更好地理解和使用 API。在 Spring Boot 项目中集成 Swagger2,可以快速生成在线接口文档,提高开发效率和调用接口的便捷性。

    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...

    Spring Boot 2.7.5 集成 Swagger 3

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

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

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

    微服务架构下的API文档管理:Java与Spring Boot的实践

    本文将详细介绍如何在Java中使用Spring Boot和相关工具来实现微服务的API文档管理。 通过使用Spring Boot和Swagger,我们可以轻松地为微服务生成详细且易于维护的API文档。这不仅提高了开发效率,也确保了API文档的...

    Swagger3生成API文档配置(Demo)

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

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

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

    Spring Boot Swagger2 构建RESTful API

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

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

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

    深入理解Java中的Swagger:自动化API文档与测试

    Swagger,作为一个强大的API文档生成工具,它不仅可以帮助开发者自动生成文档,还能提供API的在线测试功能。本文将详细介绍Swagger在Java中的使用方法,包括配置、注解、文档生成以及API测试。 Swagger是一个强大的...

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

    Swagger的核心组件是`springfox-swagger2`,它用于定义API文档;`springfox-swagger-ui`则提供了默认的用户界面来展示这些文档。为了美化Swagger UI,我们引入了`swagger-bootstrap-ui`,这是一个基于Bootstrap的UI...

    28-Spring Boot API可视化Swagger1

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

    Spring Boot中使用Swagger2构建RESTful APIs

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

    Spring Boot 中使用 Swagger2 构建 RESTful APIs

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

    Spring Boot整合JApiDocs实现API文档.doc

    Spring Boot 整合 JApiDocs 是一种高效的方式来创建 API 文档,它解决了Swagger在注解使用和返回对象描述上的不足。Swagger虽然强大,但在实际使用过程中可能会显得过于复杂,需要编写大量的注解,并且对返回对象的...

    Spring Boot-RESTfull API入门.rar

    在 "Spring Boot教程-RESTfull API快速搭建.docx" 文件中,可能详细讲解了如何设置项目结构、配置依赖、编写 REST 控制器、创建数据模型、配置数据库连接以及使用 Swagger 进行 API 文档化等步骤。通过学习这个教程...

    spring boot 整合 swagger2

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

Global site tag (gtag.js) - Google Analytics