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分组,用于组织和管理APIgroup-configs:- group: 'default'   # API分组名称paths-to-match: '/**'  # 匹配所有路径packages-to-scan: com.demo.demo1.controller  # 扫描的包,用于自动发现API# knife4j的增强配置,不需要增强可以不配(详细版见下小节)
knife4j:enable: truesetting: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 哈

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于单片机的智能小区门禁系统设计(论文+源码)

1总体架构 智能小区门禁系统以STM32单片机和WiFi技术为核心&#xff0c;STM32单片机作为主控单元&#xff0c;通过WiFi模块实现与手机APP的连接&#xff0c;构建整个门禁系统。系统硬件包括RFID模块、指纹识别模块、显示屏、按键以及继电器。通过RFID绑定IC卡、APP面部识别、指…

后盾人JS--闭包明明白白

延伸函数环境生命周期 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> <…

The just sharing principle: advice for advice givers

原文 A while ago I wrote about how Only you know what’s best for your application. That’s because only you fully understand the context within which you are making technical decisions. Any advice need to filtered through that context in order to determi…

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

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

安装Office自定义项,安装期间出错

个人博客地址&#xff1a;安装Office自定义项&#xff0c;安装期间出错 | 一张假钞的真实世界 卸载PowerDesigner后&#xff0c;打开“WPS文字”时出现下图错误&#xff1a; 解决方法&#xff1a; 按“WinR”快捷键&#xff0c;打开【运行】框&#xff0c;在对话框中输入“re…

图漾相机搭配VisionPro使用简易教程

1.下载并安装VisionPro软件 请自行下载VisonPro软件。 VisionPro 9.0 /9.5/9.6版本经测试&#xff0c;可正常打开图漾相机&#xff0c;建议使用图漾测试过的版本。 2.下载PercipioCameraForVisionPro软件包 使用浏览器下载&#xff1a;https://gitee.com/percipioxyz/camport…

信息系统管理工程师第6-8章精讲视频及配套千题通关双双发布,附第14章思维导图

这一周发文少&#xff0c;不是我在偷懒&#xff0c;而是在和信管的视频及千题通关“”浴血奋战 &#xff0c;特别是第8章卡了我很久&#xff0c;因为内容实在太多&#xff0c;精讲视频估计都差不多4个小时了&#xff0c;还好终于在春节前拿下&#xff0c;提供给小分队的同学&am…

RNN实现阿尔茨海默症的诊断识别

本文为为&#x1f517;365天深度学习训练营内部文章 原作者&#xff1a;K同学啊 一 导入数据 import torch.nn as nn import torch.nn.functional as F import torchvision,torch from sklearn.preprocessing import StandardScaler from torch.utils.data import TensorDatase…

ui-automator定位官网文档下载及使用

一、ui-automator定位官网文档简介及下载 AndroidUiAutomator&#xff1a;移动端特有的定位方式&#xff0c;uiautomator是java实现的&#xff0c;定位类型必须写成java类型 官方地址&#xff1a;https://developer.android.com/training/testing/ui-automator.html#ui-autom…

算法每日双题精讲 —— 二分查找(寻找旋转排序数组中的最小值,点名)

&#x1f31f;快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 &#x1f31f; 别再犹豫了&#xff01;快来订阅我们的算法每日双题精讲专栏&#xff0c;一起踏上算法学习的精彩之旅吧&#x1f4aa; 在算法的…

macOS使用LLVM官方发布的tar.xz来安装Clang编译器

之前笔者写过一篇博文ubuntu使用LLVM官方发布的tar.xz来安装Clang编译器介绍了Ubuntu下使用官方发布的tar.xz包来安装Clang编译。官方发布的版本中也有MacOS版本的tar.xz&#xff0c;那MacOS应该也是可以安装的。 笔者2015款MBP笔记本&#xff0c;CPU是intel的&#xff0c;出厂…

机器学习周报-文献阅读

文章目录 摘要Abstract 1 相关知识1.1 WDN建模1.2 掩码操作&#xff08;Masking Operation&#xff09; 2 论文内容2.1 WDN信息的数据处理2.2 使用所收集的数据构造模型2.2.1 Gated graph neural network2.2.2 Masking operation2.2.3 Training loss2.2.4 Evaluation metrics 2…

Doris Schema Change 常见问题分析

1. 什么是 Schema Change Schema Change 是在数据库中修改表结构的一种操作&#xff0c;例如添加列、删除列、更改列类型等。 ⚠️Schema Change 限制⚠️ 一张表在同一时间只能有一个 Schema Change 作业在运行。分区列和分桶列不能修改。如果聚合表中有 REPLACE 方式聚合的…

我的2024年年度总结

序言 在前不久&#xff08;应该是上周&#xff09;的博客之星入围赛中铩羽而归了。虽然心中颇为不甘&#xff0c;觉得这一年兢兢业业&#xff0c;每天都在发文章&#xff0c;不应该是这样的结果&#xff08;连前300名都进不了&#xff09;。但人不能总抱怨&#xff0c;总要向前…

C++ DLL注入原理以及示例

0、 前言 0.1 什么是DLL注入 DLL&#xff08;动态链接库&#xff09;注入是一种技术&#xff0c;通过将外部的 DLL 文件强行加载到目标进程的地址空间中&#xff0c;使得外部代码可以执行。这种技术常用于修改或扩展应用程序的行为&#xff0c;甚至用于恶意攻击。 0.2 DLL注入…

MATLAB绘图:随机彩色圆点图

这段代码在MATLAB中生成并绘制了500个随机位置和颜色的散点图。通过随机生成的x和y坐标以及颜色&#xff0c;用户可以直观地观察到随机点的分布。这种可视化方式在数据分析、统计学和随机过程的演示中具有广泛的应用。 文章目录 运行结果代码代码讲解 运行结果 代码 clc; clea…

关于使用PHP时WordPress排错——“这意味着您在wp-config.php文件中指定的用户名和密码信息不正确”的解决办法

本来是看到一位好友的自己建站&#xff0c;所以突发奇想&#xff0c;在本地装个WordPress玩玩吧&#xff0c;就尝试着装了一下&#xff0c;因为之前电脑上就有MySQL&#xff0c;所以在自己使用PHP建立MySQL时报错了。 最开始是我的php启动mysql时有问题&#xff0c;也就是启动过…

RabbitMQ 架构分析

文章目录 前言一、RabbitMQ架构分析1、Broker2、Vhost3、Producer4、Messages5、Connections6、Channel7、Exchange7、Queue8、Consumer 二、消息路由机制1、Direct Exchange2、Topic Exchange3、Fanout Exchange4、Headers Exchange5、notice5.1、备用交换机&#xff08;Alter…

【Uniapp-Vue3】setTabBar设置TabBar和下拉刷新API

一、setTabBar设置 uni.setTabBarItem({ index:"需要修改第几个", text:"修改后的文字内容" }) 二、tabBar的隐藏和显式 // 隐藏tabBar uni.hideTabBar(); // 显示tabBar uni.showTabBar(); 三、为tabBar右上角添加文本 uni.setTabBarBadge({ index:"…

routeros7 adguardhome添加规则报错certificate expired

mikrokit routeros 7添加adguardhome容器。 /container/add remote-imageadguard/adguardhome:latest interfaceveth1 root-dircontainer/adgurdhome loggingyes结果发现添加不了规则&#xff0c;报证书过期。 Error: control/filtering/add_url | Couldn’t fetch filter fro…