【Spring Boot】SpringBoot 优雅整合Swagger Api 自动生成文档

news/2024/10/30 11:21:40/

文章目录

  • 前言
  • 一、添加 Swagger 依赖
  • 二、创建接口类
  • 三、添加 Swagger 配置类
  • 四、访问 Swagger 页面
  • 五、整合一个更友好的UI接口文档 Knife4j
    • 1、添加 Knife4j 依赖
    • 2、添加 Knife4j 配置类
    • 3、访问 Knife4j 页面
  • 总结

前言

  • Swagger 是一套 RESTful API 文档生成工具,可以方便地生成 API 文档并提供 API 调试页面。
  • 而 Spring Boot 是一款非常优秀的 Java Web 开发框架,它可以非常方便地构建 Web 应用程序。
  • 在本文中,我们将介绍如何使用 Swagger 以及如何在 Spring Boot 中整合 Swagger

一、添加 Swagger 依赖

首先,在 pom.xml 文件中添加 Swagger 的依赖:

<!-- swagger2 -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency><!-- swagger-ui -->
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>

二、创建接口类

在 Spring Boot 项目中创建一个 Controller,并在该 Controller 中添加一个简单的接口。

例如,我们创建一个名为 HelloController 的 Controller 类,并添加一个 /hello 接口,返回一个字符串 “hello world”。

@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "hello world";}
}

三、添加 Swagger 配置类

接下来,我们需要创建一个 Swagger 配置类,用于配置 Swagger 文档的生成方式。在项目中创建一个名为 SwaggerConfig 的类,添加如下代码:

@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket createRestApi() {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 构建 RESTful APIs").description("更多 Spring Boot 相关文章请关注:https://www.example.com/").termsOfServiceUrl("https://www.example.com/").contact(new Contact("binjie09", "", "binjie09@example.com")).version("1.0").build();}
}

其中,createRestApi() 方法用于创建一个 Docket 对象,该对象包含了 Swagger 文档的生成方式设置。在上述代码中,我们设置了文档的基本信息,以及包扫描路径等。

四、访问 Swagger 页面

最后,启动 Spring Boot 应用程序,访问 http://localhost:8080/swagger-ui.html 即可看到 Swagger 文档页面。
在页面左侧,我们可以看到程序中创建的 API 接口,点击接口后可以看到该接口的详细信息。

在 Swagger 页面上,我们还可以进行接口测试和调试。在 /hello 接口上,点击 “Try it out” 按钮,填写请求参数后点击 “Execute” 按钮,即可发送请求并获取响应。

通过整合 Swagger,我们可以在 Spring Boot 应用程序中快速生成 RESTful API 文档,并且直接在页面上进行调试和测试,非常方便。

五、整合一个更友好的UI接口文档 Knife4j

Knife4j 是一款基于 Swagger 的 API 文档生成工具,它提供了非常友好的 UI 界面,可以方便地生成和浏览 API 文档。
在本文中,我们将介绍如何在 Spring Boot 中整合 Knife4j。

1、添加 Knife4j 依赖

首先,在 pom.xml 文件中添加 Knife4j 的依赖:

<!-- knife4j -->
<dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-openapi2-spring-boot-starter</artifactId><version>4.1.0</version>
</dependency>

2、添加 Knife4j 配置类

接下来,我们需要创建一个 Knife4j 配置类,用于配置 Knife4j 文档的生成方式。在项目中创建一个名为 Knife4jConfig 的类,添加如下代码:

@Configuration
@EnableKnife4j
public class Knife4jConfig {@Beanpublic Docket docket() {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 中使用 Knife4j 构建 RESTful APIs").description("更多 Spring Boot 相关文章请关注:https://www.example.com/").termsOfServiceUrl("https://www.example.com/").contact(new Contact("binjie09", "", "binjie09@example.com")).version("1.0").build();}
}

在上述代码中,我们使用了 @EnableKnife4j 注解开启了 Knife4j 的自动配置。在 docket() 方法中,我们设置了文档的基本信息、包扫描路径等。需要注意的是,在 Knife4j 中,我们需要使用 Swagger 2.x 版本的 API

3、访问 Knife4j 页面

在这里插入图片描述

最后,启动 Spring Boot 应用程序,访问 http://localhost:8080/doc.html 即可看到 Knife4j 文档页面。与 Swagger 相比,Knife4j 提供了更加友好的 UI 界面,并且可以直接在页面上进行接口测试和调试,非常方便。

总结

通过整合 Knife4j,我们可以在 Spring Boot 应用程序中快速生成 RESTful API 文档,并且直接在页面上进行调试和测试,提高了开发效率。


http://www.ppmy.cn/news/48113.html

相关文章

ChatGPT原理详解+实操

言 ChatGPT已近火了快大半年了&#xff0c;从去年刚出来的时候小编就关注了一下&#xff0c;也具体的使用过&#xff0c;然后就惊为天人&#xff0c;再然后就没有然后了&#xff0c;因为小编那段时间沉迷于AIGC了。ChatGPT今年开年后更是火的一塌糊涂&#xff0c;无论是行业内…

一流棒球特色学校应该具备什么条件·棒球1号位

随着人们生活水平的提高和健康意识的增强&#xff0c;越来越多的人开始关注体育运动的健康和乐趣。而棒球作为一项全身性、协调性和技术性都极高的运动&#xff0c;受到了越来越多人的喜爱和追捧。为了满足人们对于棒球运动的需求&#xff0c;棒球特色学校应运而生。那么&#…

一文搞懂文件下载·读取漏洞

一文搞懂文件下载读取漏洞 1.概述2.利用思路3.常见文件WindowsLinux 4.不安全的文件下载绕过手法5.修复建议 1.概述 文件下载功能在很多web系统上都会出现&#xff0c;一般我们当点击下载链接&#xff0c;便会向后台发送一个下载请求&#xff0c;一般这个请求会包含一个需要下…

一名合格的亚马逊运营,从早到晚都在做什么?

最近东哥分享了很多关于亚马逊话题的文章&#xff0c;发现有很多小伙伴很好奇亚马逊运营的事&#xff0c;很多人都说很想知道一名合格的亚马逊运营每天都需要干什么&#xff0c;那今天东哥就拿我们自己团队的亚马逊运营来跟大家聊一聊。 亚马逊运营从早到晚都干了些什么活&…

微信小程序自定义组件:组件间通讯

前言 略 组件间通信 组件间的基本通信方式有以下几种&#xff1a; WXML 数据绑定&#xff1a;用于父组件向子组件的指定属性设置数据&#xff0c;仅能设置 JSON 兼容数据&#xff08;自基础库版本 2.0.9 开始&#xff0c;还可以在数据中包含函数&#xff09;。具体在 组件模…

Python如何使用和配置Anaconda入门

1、Anaconda介绍 Anaconda 是一款广泛使用的Python和R语言开发环境&#xff0c;集成了许多常用的科学计算和数据分析库。它包括conda、Python解释器以及大量有用的库和工具&#xff0c;使得您可以更轻松地搭建Python和R的开发环境。此外&#xff0c;Anaconda 还提供了一个简单…

网络编程及项目思路

计算机和计算机之间通过网络进行数据传输 常见的软件架构&#xff1a; C/S:客户端/服务器 画面可以做的非常精美&#xff0c;用户体验好需要开发客户端&#xff0c;也需要开发服务端用户需要下载和更新的时候太麻烦 B/S:浏览器/服务器 不需要开发客户端&#xff0c;只需要…

车企围攻整车OS,这张“新王牌”怎么打?

今年2月23日&#xff0c;梅赛德斯--奔驰发布了打造自有操作系统MB.OS的具体计划&#xff0c;该操作系统将在本年代中期随全新梅赛德斯-奔驰模块化架构&#xff08;MMA&#xff09;平台推出&#xff0c;预计2025年用户将能体验到它的强大功能。 据悉&#xff0c;基于覆盖芯片到…