news 2026/7/4 3:34:53

swagger增强knife4j

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
swagger增强knife4j

1、官网文档

快速开始 | Knife4j

2、引入依赖

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

3、配置文件

引入之后,其余的配置,开发者即可完全参考springdoc-openapi的项目说明,Knife4j只提供了增强部分,如果要启用Knife4j的增强功能,可以在配置文件中进行开启。部分配置如下:

# 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.ybw.controller # knife4j的增强配置,不需要增强可以不配 knife4j: enable: true setting: language: zh_cn

Knife4j更多增强配置明细,请移步文档进行查看。

4、代码

最后,使用OpenAPI3的规范注解,注释各个Spring的REST接口,示例代码如下:

package com.ybw.controller; import com.ybw.dto.BodyDTO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("body") @Tag(name = "body参数") public class BodyController { @Operation(summary = "普通body请求") @PostMapping("/body") public ResponseEntity<BodyDTO> body(@RequestBody BodyDTO bodyDTO) { return ResponseEntity.ok(bodyDTO); } @Operation(summary = "普通body请求+Param+Header+Path") @Parameters({ @Parameter(name = "id", description = "文件id", in = ParameterIn.PATH), @Parameter(name = "token", description = "请求token", required = true, in = ParameterIn.HEADER), @Parameter(name = "name", description = "文件名称", required = true, in = ParameterIn.QUERY) }) @PostMapping("/bodyParamHeaderPath/{id}") public ResponseEntity<BodyDTO> bodyParamHeaderPath(@PathVariable("id") String id, @RequestHeader("token") String token, @RequestParam("name") String name, @RequestBody BodyDTO bodyDTO) { bodyDTO.setName(bodyDTO.getName() + ",receiveName:" + name + ",token:" + token + ",pathID:" + id); return ResponseEntity.ok(bodyDTO); } }
package com.ybw.dto; import lombok.Data; /** * @author ybw * @version V1.0 * @className BodyDTO * @date 2026/7/2 **/ @Data public class BodyDTO { private String name; }

5、访问

访问Knife4j的文档地址:http://ip:port/doc.html即可查看文档。

6、导出

文档管理-离线文档

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 3:34:32

C++:拷贝构造函数

一、什么是拷贝构造函数&#xff1f; 拷贝构造函数是一种特殊的构造函数&#xff0c;它的参数是同类型对象的常量引用&#xff0c;即用已存在的一个变量初始化另一个同类型变量。 class Person { public:// 拷贝构造函数Person(const Person& other) {name other.name;age…

作者头像 李华
网站建设 2026/7/4 3:32:45

椭圆曲线 Diffie-Hellman 密钥交换解题思路

在密码学入门中&#xff0c;椭圆曲线密码&#xff08;ECC&#xff09;以其更短的密钥长度和更高的安全性备受青睐。而椭圆曲线 Diffie-Hellman&#xff08;ECDH&#xff09;则是 ECC 最经典的应用之一&#xff0c;它允许双方在不安全的信道上协商出一个共享秘密。最近在解决 Cr…

作者头像 李华
网站建设 2026/7/4 3:32:26

集团知识管理平台建设方案:74页PpT爆款干货全解析!

很多公司搞知识管理&#xff0c;看起来热闹&#xff0c;实际却是一堆文件躺在服务器里吃灰。业务部门找不到想要的方案&#xff0c;技术人员每次新人培训要翻几十个文件夹。知识库变成了“死库”&#xff0c;没人用&#xff0c;也没人维护。更头疼的是&#xff0c;领导问一声“…

作者头像 李华
网站建设 2026/7/4 3:31:56

【2026万字实录】从理论到实战:网络信息安全全景深度解析与避坑指南

【2026万字实录】从理论到实战&#xff1a;网络信息安全全景深度解析与避坑指南 &#x1f4cc; 核心导读 站在2026年的技术节点&#xff0c;网络安全已不再是“防火墙杀毒软件”的简单堆砌&#xff0c;而是演变为涵盖云原生、人工智能、数据治理与地缘合规的复杂巨系统。本文拒…

作者头像 李华
网站建设 2026/7/4 3:31:31

后 Django 时代:SQLAlchemy 2.0、Tortoise 与 Piccolo 三大异步 ORM 选型指南

参赛选手# SQLAlchemy 2.0&#xff1a;数据库界的工业母机# 如果说 Python 数据库领域有一座神庙&#xff0c;那供奉的一定是 SQLAlchemy。在经历了漫长的 1.x 时代后&#xff0c;2.0 版本的发布标志着它正式拥抱了强类型标注和原生异步。 SQLAlchemy 在 GitHub 上拥有 11.7…

作者头像 李华
网站建设 2026/7/4 3:29:44

几分钟完成 OpenClaw 安装,Windows 可视化步骤新手直接照搬

OpenClaw&#xff08;小龙虾&#xff09;Windows\苹果系统 一键部署保姆级教程 | 10 分钟养出你的数字员工&#xff08;2026 最新版&#xff09; 前言 2026 年热门的开源 AI 智能体 OpenClaw&#xff08;昵称小龙虾&#xff09;&#xff0c;GitHub 星标超 28 万&#xff0c;凭…

作者头像 李华