当前位置: 首页 > news >正文

SpringBoot3.0+项目使用Knife4j集成Swagger接口文档教程

一、项目简介

本教程将指导你在 Spring Boot 3.0+ 项目中集成 SpringDoc OpenAPI 3 和 Knife4j,生成美观的 API 接口文档。

Knife4j官方教程

二、环境要求

  • JDK 17+

  • Spring Boot 3.0+

  • Maven 3.6+

三、详细步骤

1. 添加依赖

pom.xml中添加以下依赖:

<!-- SpringDoc OpenAPI 3 核心依赖 --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.8.16</version> </dependency> <!-- Knife4j 增强UI界面 --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>4.4.0</version> </dependency>

注意:在Maven仓库查找最新版依赖

2. 配置 application.yaml

在配置文件中添加以下配置:

# springdoc-openapi项目配置 springdoc: swagger-ui: path: /swagger-ui.html tags-sorter: alpha operations-sorter: alpha api-docs: path: /v3/api-docs group-configs: - group: 'default' paths-to-match: '/**' packages-to-scan: com.example.org.controller # knife4j的增强配置 knife4j: enable: true setting: language: zh_cn

3. 访问地址

ip:port写自己的项目后端接口

  • Knife4j 文档地址:http://ip:port/doc.html

  • 原生 Swagger UI:http://ip:port/swagger-ui/index.html

  • OpenAPI JSON:http://ip:port/v3/api-docs

  • OpenAPI YAML:http://ip:port/v3/api-docs.yaml

4.注解使用

Knife4j 常用注解

注解名称

作用位置

参数示例

功能说明

@Tag

控制器类

@Tag(name="用户", description="用户管理")

接口分组标签

@Operation

方法

@Operation(summary="创建", description="创建用户")

接口基本描述

@Parameter

参数

@Parameter(name="id", description="ID", required=true)

单个参数描述

@Parameters

方法

@Parameters({@Parameter(...)})

多个参数描述

@Schema

实体类/字段

@Schema(description="用户", example="张三")

模型/字段描述

@ApiResponse

方法

@ApiResponse(responseCode="200", description="成功")

单个响应描述

@ApiResponses

方法

@ApiResponses({@ApiResponse(...)})

多个响应描述

@Hidden

类/方法/字段

@Hidden

隐藏接口/字段

@ExampleObject

方法参数

@ExampleObject(name="示例", value="{\"name\":\"test\"}")

示例数据

@Content

响应

@Content(mediaType="application/json")

响应内容类型

快速使用示例:

@RestController @Tag(name = "用户接口") // 分组标签 class UserController { @PostMapping("/user") @Operation(summary = "创建用户") // 接口描述 @Parameters({ @Parameter(name = "token", in = ParameterIn.HEADER, required = true) // 参数 }) @ApiResponses({ @ApiResponse(responseCode = "200", description = "成功") // 响应 }) public UserDTO create(@RequestBody UserVO vo) { return userService.create(vo); } } @Data class UserVO { @Schema(description = "用户名", example = "张三", required = true) // 字段 private String name; @Hidden // 隐藏字段 private String password; }
http://www.jsqmd.com/news/567239/

相关文章:

  • 3步让你的Windows 11性能提升60%:专业级系统优化工具Win11Debloat全解析
  • 精密气动点焊机:破解锂电池焊接质量难题的技术突破
  • 全源最短路问题
  • 低显存福音:ComfyUI+Nunchaku FLUX.1-dev量化版AI绘画快速体验
  • 申博机构筛选避坑清单|10 个细节,帮你避开所有套路(CSDN 独家)
  • Arduino I²C设备扫描库:复刻i2cdetect的嵌入式诊断工具
  • MiniCPM-o-4.5-nvidia-FlagOS跨平台部署:Windows系统配置要点
  • 成都装修公司哪家靠谱?2025-2026年度十大“预算包干”优选企业榜单发布 - 推荐官
  • 5大核心优势:开源下载工具重构云存储资源获取效率
  • 单片机存储系统:哈佛架构与ROM/RAM技术解析
  • 如何通过UltraVNC实现高效实用的远程桌面控制?
  • 别硬扛了!颈椎腰椎异常疼了 5 年,我才懂:省钱的康复路根本不是自己瞎扛
  • 1.5 Harness 架构深度解析:Claude Code 为什么强?
  • 酒店组网解决方案助力智能化提升客户体验
  • Qt6 + OpenGL 3.3 渲染环境搭建全指南:从空白窗口到专属渲染画布的优雅实现
  • hgproxy4.0.35.0之前版本数据库连接卡在parse状态
  • 大厂笔试面试八股文-算法-数组常考题-final
  • 自动驾驶控制:斯坦利(Stanley)算法C++纯代码实现
  • 瑞芯微(EASY EAI)RV1126B WIFI AP通讯
  • 基于Phi-3-mini-128k-instruct构建运维智能助手:Linux命令分析与故障排查
  • Tomcat中间件能够提供的能力
  • 从原理到实战:Java 数组核心知识与高阶用法
  • 无人机飞控参数调试:原理、流程与工程标准
  • 软件测试高频面试题 2026 最新整理(功能 + 自动化)
  • Phi-3-mini-4k-instruct-gguf参数详解:温度0.0时技术文档摘要的逻辑连贯性分析
  • 手把手教你用Scanpy搞定空间转录组分析:从Visium数据到FISH可视化(附避坑指南)
  • 三维空间RRT融合人工势场APF算法路径平滑处理
  • Python实战:从2024政府工作报告中智能提取关键数据短句
  • 高效掌握Markmap:让Markdown文本转换为交互式思维导图提升内容可视化效率的实战指南
  • pg_dump备份报错:Only syssso can access this table