springboot3 集成 knife4j(接口文档)

提示:文章是集成 knife4j,而非 swagger2 或者 swagger3,效果如图

在这里插入图片描述

文章目录

  • 前言
  • 一、添加依赖
  • 二、如何集成
    • 1.配置文件
    • 2.注解部分
      • 1.@Tag
      • 2.@Operation
      • 3.@Parameter
      • 4.@Schema
    • 3.使用
  • 总结


前言

提示::大家在开发阶段,前后端对接时,一份简洁明了的接口文档,至关重要,本文讲述了在 springboot3 的框架下,如何快速集成 knife4j。


一、添加依赖

        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
            <version>4.4.0</version>
        </dependency>

如果项目启动成功,但是跳转接口文档页面报错,那就需要删除 jackson 的相关依赖(已经帮大家踩坑了)。

二、如何集成

1.配置文件

代码如下(示例):

# 配置springdoc-openapi,用于文档化和访问API
springdoc:
  # 配置Swagger UI的访问路径和排序方式
  swagger-ui:
    path: /swagger-ui.html  # Swagger UI的访问路径
    tags-sorter: alpha      # 按字母顺序排序标签
    operations-sorter: alpha  # 按字母顺序排序操作
  # 配置API文档的访问路径
  api-docs:
    path: /v3/api-docs  # API文档的访问路径
  # 配置API分组,用于组织和管理API
  group-configs:
    - group: 'default'   # API分组名称
      paths-to-match: '/**'  # 匹配所有路径
      packages-to-scan: com.demo.demo1.controller  # 扫描的包,用于自动发现API

# knife4j的增强配置,不需要增强可以不配(详细版见下小节)
knife4j:
  enable: true
  setting:
    language: zh_cn

需要注意 packages-to-scan 后面需要大家改成自己controller的路径哈~

2.注解部分

1.@Tag

示例如图:

在这里插入图片描述

该注解用于 controller 的类上,可以标识该类包含的大致作用。具体作用如图:

在这里插入图片描述

2.@Operation

示例如图:

在这里插入图片描述

该注解用于方法上,点击用户管理菜单会显示该类中的方法。

在这里插入图片描述

3.@Parameter

示例如图:

在这里插入图片描述

该注解用于方法参数,具体作用如图:

在这里插入图片描述

4.@Schema

示例如图:

在这里插入图片描述

该注解用于实体类以及属性,具体作用如图:

在这里插入图片描述

3.使用

页面地址是在项目地址后面追加 /doc.html,例如我本地的文档地址是 http://localhost:8080/doc.html

大家可以在自己的启动文件打印出来,方便使用

@SpringBootApplication
public class Demo1Application {

  public static void main(String[] args) {
    SpringApplication.run(Demo1Application.class, args);
    System.out.println("============================ 项目启动成功 ============================");
    System.out.println(=============== http://localhost:8080/doc.html#/home ===============");
    System.out.println("============================ 项目启动成功 ============================");
  }
}

项目启动完,点击链接地址即可直接跳转!

在这里插入图片描述
当然这个是我本地的可以这么打印,如果需要给线上的,大家把 localhost 替换成线上的服务 ip,8080 替换成线上的端口号。

如果大家想要的是 swagger 那种风格的,只需要把后缀改为 /swagger-ui/index.html,例如我的地址则是: http://localhost:8080/swagger-ui/index.html#/,跳转页面如图:

在这里插入图片描述


总结

knife4j 并非只有这几个注解,我是挑选了几个最重要的,而且也基本能满足大家日常开发需求,如果需要更详细的可以跳转 knife4j 官网。

额外说下:文章并非是 springboot 集成 swagger,而是集成了knife4j 后,knife4j 还兼容了 swagger 的风格,文章开始就说明了,作为开发我更喜欢 knife4j 这种风格,左侧的菜单能更快定位接口,整个页面结构更加清晰简洁。

如果大家是在本地进行对接,那么需要前后端在一个局域网,然后后端将自己的 ip 和端口发送给前端,前端只需要将接口地址的 localhost 或者 127.0.0.1 换成后端的 ip,即可让前端也能在自己的电脑上访问接口文档~~~再说一次,务必前后端的电脑在一个局域网下

例如:http://localhost:8080/doc.html#/home
后端的 ip 是 172.16.30.206,那么我给前端的地址就是:http://172.16.30.206:8080/doc.html#/home,端口是多少就改成啥就行。
不知道自己电脑 ip 的,win+R 组合键输入 cmd,打开终端输入:ipconfig(mac 或者 linux 的是 ifconfig)如图:

在这里插入图片描述

输出里面会有无线局域网适配器 WLAN,找到这个下面的 IPv4 地址,这个即使自己电脑的 ip,前提是你连的是 wifi 哈

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/959137.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

亚博microros小车-原生ubuntu支持系列:7-脸部检测

背景知识 官网介绍&#xff1a; Face Mesh - mediapipe mpFaceMesh.FaceMesh() 类的参数有&#xff1a;self.staticMode, self.maxFaces, self.minDetectionCon, self.minTrackCon staticMode:是否将每帧图像作为静态图像处理。如果为 True&#xff0c;每帧都会进行人脸检测…

写作利器:如何用 PicGo + GitHub 图床提高创作效率

你好呀&#xff0c;欢迎来到 Dong雨 的技术小栈 &#x1f331; 在这里&#xff0c;我们一同探索代码的奥秘&#xff0c;感受技术的魅力 ✨。 &#x1f449; 我的小世界&#xff1a;Dong雨 &#x1f4cc; 分享我的学习旅程 &#x1f6e0;️ 提供贴心的实用工具 &#x1f4a1; 记…

thingsboard 动态报警

前言 考虑将报警上下限写入设备属性&#xff0c;设备遥测数据与设备属性实时做报警逻辑。这样做的好处在于&#xff0c;可以动态修改设备属性&#xff0c;进而修改设备报警触发上下限。 1、修改设备属性 基于mq &#xff0c;向设备写入属性。 topic v1/devices/me/attribut…

三、双链表

链表的种类有很多&#xff0c;单链表是不带头不循环单向链表&#xff0c;但双链表是带头循环双向链表&#xff0c;并且双链表还有一个哨兵位&#xff0c;哨兵位不是头节点 typedef int LTDataType;typedef struct ListNode{struct ListNode* next; //指针保存下⼀个结点的地址s…

(算法竞赛)使用广度优先搜索(BFS)解决迷宫最短路径问题

在这个充满奇思妙想的世界里&#xff0c;每一次探索都像是打开了一扇通往新世界的大门。今天&#xff0c;我们将踏上一段特别的旅程&#xff0c;去揭开那些隐藏在代码、算法、数学谜题或生活智慧背后的秘密。&#x1f389;&#x1f60a; 所以&#xff0c;系好安全带&#xff0…

支持大功率输出高速频闪的图像处理用光源控制器

机器视觉系统中的光源控制器在确保图像质量、提高系统稳定性、降低能耗以及方便系统扩展和升级等方面发挥着重要作用。它可提供稳定光源&#xff0c;调节参数&#xff0c;另外具有操作便捷性。 下面我们来看Gardasoft的光源控制器&#xff0c;Gardasoft拥有作为图像处理用LED光…

鸿蒙模块概念和应用启动相关类(HAP、HAR、HSP、AbilityStage、UIAbility、WindowStage、window)

目录 鸿蒙模块概念 HAP entry feature har shared 使用场景 HAP、HAR、HSP介绍 HAP、HAR、HSP开发 应用的启动 AbilityStage UIAbility WindowStage Window 拉起应用到显示到前台流程 鸿蒙模块概念 HAP hap包是手机安装的最小单元&#xff0c;1个app包含一个或…

为什么IDEA提示不推荐@Autowired❓️如果使用@Resource呢❓️

前言 在使用 Spring 框架时&#xff0c;依赖注入&#xff08;DI&#xff09;是一个非常重要的概念。通过注解&#xff0c;我们可以方便地将类的实例注入到其他类中&#xff0c;提升开发效率。Autowired又是被大家最为熟知的方式&#xff0c;但很多开发者在使用 IntelliJ IDEA …

【Uniapp-Vue3】uni-icons的安装和使用

一、uni-icon的安装 进入到如下页面中&#xff0c;点击“点击下载&安装”。 uni-icons 图标 | uni-app官网 点击“下载插件并导入HBuilder”&#xff0c;如果没有登录就登陆一下 网页中会打开Hbuilder&#xff0c;进入Hbuilder以后&#xff0c;选择需要使用该插件的项目进…

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(三)

Understanding Diffusion Models: A Unified Perspective&#xff08;三&#xff09; 文章概括 文章概括 引用&#xff1a; article{luo2022understanding,title{Understanding diffusion models: A unified perspective},author{Luo, Calvin},journal{arXiv preprint arXiv:…

群晖docker获取私有化镜像http: server gave HTTP response to HTTPS client].

群晖docker获取私有化镜像提示http: server gave HTTP response to HTTPS clien 问题描述 层级时间用户事件Information2023/07/08 12:47:45cxlogeAdd image from xx.xx.31.240:1923/go-gitea/gitea:1.19.3Error2023/07/08 12:47:48cxlogeFailed to pull image [Get "http…

Charles 4.6.7 浏览器网络调试指南:HTTPS抓包(三)

概述 在现代互联网应用中&#xff0c;网络请求和响应是服务交互的核心。对于开发者和测试人员来说&#xff0c;能够准确捕获并分析这些请求&#xff0c;是保证系统稳定性和性能的关键。Charles作为一个强大的网络调试工具&#xff0c;不仅可以捕获普通的HTTP请求&#xff0c;还…

从spec到iso的koji使用

了解一下Linux发行版流程&#xff1a;:从spec到iso的koji使用 for Fedora 41。 Fedora 41有24235个包&#xff0c;我们选择 minimal 的几十个源码包&#xff0c;百多个rpm包构建。 配3台服务器 40C64G 44C64G 80C128G&#xff0c;有点大材小用&#xff0c;一台就够了 &#xf…

系统思考—复杂问题的根源分析

在企业中&#xff0c;许多问题看似简单&#xff0c;背后却潜藏着复杂的因果关系。传统的思维方式往往只能看到表面&#xff0c;而无法深入挖掘问题的真正根源。我们常常通过“表面解决”来应对眼前的症状&#xff0c;但这往往只是治标不治本。 比如&#xff0c;销量下降时&…

低代码开发:效率革命与市场机遇

一、引言 IT技术推动了全球信息化的浪潮&#xff0c;然而软件开发效率的提升却未能像摩尔定律那样迅速&#xff0c;逐渐成为发展的瓶颈。近年来&#xff0c;低代码领域发展迅猛&#xff0c;不仅诞生了估值超10亿美元的独角兽OutSystems&#xff0c;还吸引了AWS、Google、Micro…

leetcode——相交链表(java)

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&…

浅谈APP之历史股票通过echarts绘图

浅谈APP之历史股票通过echarts绘图 需求描述 今天我们需要做一个简单的历史股票收盘价格通过echarts进行绘图&#xff0c;效果如下&#xff1a; 业务实现 代码框架 代码框架如下&#xff1a; . 依赖包下载 我们通过网站下载自己需要的涉及的图标&#xff0c;勾选之后进…

【音视频处理】FFmpeg for Windows 安装教程

FFmpeg 是一个强大的多媒体处理工具&#xff0c;可以处理音视频的各种任务&#xff0c;包括格式转换、裁剪、合并等操作&#xff0c;市面上你可以看到的几乎所有的音视频的处理工具内部都离不开FFmpeg的身影。 本文将详细介绍如何在 Windows 系统上安装 FFmpeg。 1. 下载 FFmp…

leetcode刷题记录(八十一)——236. 二叉树的最近公共祖先

&#xff08;一&#xff09;问题描述 236. 二叉树的最近公共祖先 - 力扣&#xff08;LeetCode&#xff09;236. 二叉树的最近公共祖先 - 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科 [https://baike.baidu.com/item/%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B…

【28】Word:石油化工设备技术❗

目录 题目 NO1.2 NO3 NO4 题目 NO1.2 F12&#xff1a;另存为将“Word素材.docx”文件另存为“Word. docx”&#xff08;“docx”为文件扩展名&#xff09; 光标来到表格上方→插入→形状→新建画布→单击选中→格式→高度/宽度&#xff08;格式→大小对话框→取消勾选✔锁定…