千家信息网

Spring Boot集成Swagger2怎么构建API文档

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要讲解了"Spring Boot集成Swagger2怎么构建API文档",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spring Boot集
千家信息网最后更新 2025年11月08日Spring Boot集成Swagger2怎么构建API文档

这篇文章主要讲解了"Spring Boot集成Swagger2怎么构建API文档",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Spring Boot集成Swagger2怎么构建API文档"吧!

一、Swagger 是什么

Swagger 是一种接口描述语言,主要用于生成、描述、调用以及可视化 RESTful 风格的 Web 服务接口文档。以前的项目可能更多的是前后端未分开同时进行开发,所以接口文档可能不是那么重要。但现在主流的项目基本都是前后端分离,如果前后端没有沟通好,就有可能导致接口文档更新不及时,造成一些不必要的麻烦。而通俗地讲,Swagger 就是帮我们写接口文档的。它不仅能自动生成实时接口文档,还能生成测试用例,方便我们进行测试。

Swagger 主要提供了如下几种开源工具:

1.Swagger Editor

Swagger 所提供的的编辑器,主要用于编辑 Swagger 描述文件,支持实时预览描述文件更新后的效果,类似于我们的 Markdown 编辑器,左边编写源码,右边就可以进行实时预览。该编辑器不仅提供在线使用,还支持本地部署。

2.Swagger UI

提供可视化的 UI 页面,用于展示 Swagger 的描述文件。接口的调用方、测试等都可以通过该页面查阅接口的相关信息,并且进行简单的接口请求测试。

3.Swagger Codegen

通过使用该工具,可以将 Swagger 的描述文件生成 HTML 和 CWIKI 形式的接口文档,而且还能生成针对多种不同语言的服务端和客户端的代码。

4.Swagger UI

平时和我们打交道最多的,可能就是 Swagger UI 这个工具了,它主要用于显示接口文档。根据我们代码中按照 Swagger 规范所设置的描述,自动生成接口说明文档。一个简单的示例如下:

二、Spring Boot 集成 Swagger

1.创建 Spring Boot 项目

通过以上对 Swagger 简单的介绍之后,我们来看看如何在 Spring Boot 项目中使用 Swagger。

首先需要创建一个简单的 Spring Boot 项目,如果你还不知道如何创建,

创建好之后的项目接口如下:

2.引入依赖

创建好Spring Boot 项目之后,需要配置项目 pom.xml 文件,在其中引入 Swagger 的相关依赖。

    io.springfox    springfox-swagger2    2.9.2    io.springfox    springfox-swagger-ui    2.9.2

3.构建 Swagger 配置类

引入依赖后,接下来就是构建 Swagger 的配置类了。

package com.cunyu.springbootswaggerdemo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;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;import java.util.ArrayList;/** * Created with IntelliJ IDEA. * * @author : 村雨遥 * @version : 1.0 * @project : springboot-swagger-demo * @package : com.cunyu.springbootswaggerdemo.config * @className : Swagger2Configuration * @createTime : 2022/1/5 22:21 * @email : 747731461@qq.com * @微信 : cunyu1024 * @公众号 : 村雨遥 * @网站 : https://cunyu1943.github.io * @description : */@Configuration@EnableSwagger2public class Swagger2Configuration {    /**     * 配置 Swagger 2     * 注册一个 Bean 属性     * enable():是否启用 Swagger,启用后才能在浏览器中进行访问     * groupName():用于配置 API 文档的分组     */    @Bean    public Docket docket() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .enable(true)                .groupName("v1")                .select()                // 过滤路径                //.paths(PathSelectors.ant())                // 指定扫描的包                .apis(RequestHandlerSelectors.basePackage("com.cunyu.springbootswaggerdemo.controller"))                .build();    }    private ApiInfo apiInfo() {        /*作者信息*/        Contact contact = new Contact("村雨遥", "https://cunyu1943.github.io", "747731461@qq.com");        return new ApiInfo(                "Swagger 测试接口文档",                "Spring Boot 集成 Swagger 测试接口文档",                "v1.0",                "https://cunyu1943.github.io",                contact,                "Apache 2.0",                "http://www.apache.org/licenses/LICENSE-2.0",                new ArrayList()        );    }}

4.编写接口

配置好 Swagger 后,在我们的项目中添加一个简单的接口,这里以一个简单的有参和无参接口为例。

package com.cunyu.springbootswaggerdemo.controller;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import io.swagger.annotations.ApiParam;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;/** * Created with IntelliJ IDEA. * * @author : 村雨遥 * @version : 1.0 * @project : springboot-swagger-demo * @package : com.cunyu.springbootswaggerdemo.controller * @className : SwaggerDemoController * @createTime : 2022/1/5 22:21 * @email : 747731461@qq.com * @微信 : cunyu1024 * @公众号 : 村雨遥 * @网站 : https://cunyu1943.github.io * @description : */@Api@RestControllerpublic class SwaggerDemoController {    @ApiOperation(value = "hello world 接口")    @GetMapping("hello")    public String hello() {        return "hello world";    }    @ApiOperation(value = "有参接口")    @PostMapping("demo")    public String demo(@ApiParam(name = "name", value = "村雨遥", required = true) String name) {        return "hello," + name;    }}

5.查看并测试接口

完成上述步骤后,我们启动项目,然后在浏览器中访问如下地址,就可以访问我们项目的接口文档了。

http://localhost:8080/swagger-ui.html

访问如上地址后,如果出现下面的界面,说明我们 Spring Boot 集成 Swagger2 就到此成功了。

点开具体的接口,就会有这个接口的一些详细信息,如下图所示,一般包括:

  • 接口请求方式

  • 接口请求路径及描述

  • 接口请求参数

  • 接口响应

如果我们要进行简单的测试,则点击上图中右上方的 Try it out,然后我们就可以编辑请求参数的值,编辑完成之后点击下方的 Execute 即可查看接口返回值。

以我给的接口为例,我传入了一个参数 name,然后执行 demo 接口,最后会给我返回 hello,name 的结果,其中 name 是我传入的参数值,这里我传入了村雨遥,所以结果应该会得到 hello,村雨遥,可以看到 Swagger 测试中也给我返回了对应的结果,说明我们的接口测试成功!

注意:
如果在整合过程中出现如下错误:

org.springframework.context.ApplicationContextException:Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException

这里可能是由于 Spring Boot 版本过高导致,我写作本文时,一开始使用的 SpringBoot 2.6.2 版本,所以出现了该错误,而当我将 SpringBoot 降级为 2.5.6 时,该错误就不再出现。所以如果你也出现了这个问题,也可以尝试降低 SpringBoot 版本来解决。

感谢各位的阅读,以上就是"Spring Boot集成Swagger2怎么构建API文档"的内容了,经过本文的学习后,相信大家对Spring Boot集成Swagger2怎么构建API文档这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

接口 文档 项目 测试 生成 配置 文件 参数 就是 信息 实时 工具 版本 结果 编辑器 错误 学习 成功 代码 公众 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 企业管理软件开发需要注意什么 大同社区团购软件开发 我的世界用什么炸服务器好 网络安全的征文三年级 网络安全管理笔试 数据库登录微信有什么好处 肖海荣数据库原理与应用电子书 中国网络安全技能竞赛组委会 网页如何与数据库连接 淮阳服务器 补胎 关于如何做好网络安全 网络安全管理人员职业寿命 爬虫能爬取哪些公开的数据库 软件开发完工后奖金发放文书 怎么选择心电数据库 国家推荐网络安全什么建设 数据库金额 佰威网络技术深圳有限公司 网络安全管控班长职责 宜兴电话软件开发销售 欧盟5g网络安全建议 数据库的常规在哪里 浙江省嘉兴市网络安全生产学院 怎样介绍软件开发 金融网站服务器防护cc攻击 我的世界服务器能用自己的存档吗 软件开发项目经理培训内容 wannacry 服务器 在郑州软件开发去哪应聘 opc测试软件搜不到服务器
0