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

Knife4j使用

Knife4j使用


文章目录

      • Knife4j使用
        • 1、Knife4j介绍
        • 2、SpringBoot集成Knife4j
        • 3、基本使用

1、Knife4j介绍

Knife4j是一个用于生成和展示API文档的工具,同时它还提供了在线调试的功能,可以看作是Swagger的升级版,界面也比Swagger更好看,下图是其工作界面。

image-20240604223329065

了解

  • Knife4j有多个版本,最新版的Knife4j基于开源项目springdoc-openapi,这个开源项目的核心功能就是根据SpringBoot项目中的代码自动生成符合OpenAPI规范的接口信息。
  • OpenAPI规范定义接口文档的内容和格式,其前身是Swagger规范。
2、SpringBoot集成Knife4j

在SpringBoot项目使用,需要先导入依赖

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

之后再创建对应的配置类

@Configuration
public class Knife4jConfiguration {@Beanpublic OpenAPI openAPI() {return new OpenAPI().info(new Info().title("hello-knife4j项目API").version("1.0").description("hello-knife4j项目的接口文档"));}@Beanpublic GroupedOpenApi userAPI() {return GroupedOpenApi.builder().group("用户信息管理").pathsToMatch("/user/**").build();}@Beanpublic GroupedOpenApi systemAPI() {return GroupedOpenApi.builder().group("产品信息管理").pathsToMatch("/product/**").build();}
}

启动项目

image-20240604225116190

3、基本使用

创建实体类进行测试

@Schema注解用于描述作为接口参数或者返回值的实体类的数据结构

@Data
@Schema(description = "用户信息实体")
public class User {@Schema(description = "编号")private Long id;@Schema(description = "用户姓名")private String name;@Schema(description = "用户年龄")private Integer age;@Schema(description = "用户邮箱")private String email;
}

创建Controller接口

@Tag注解用于对接口进行分类,相同Tag的接口会放在同一个菜单。

@Operation用于对接口进行描述。

@Parameter用于对HTTP请求参数进行描述

@RestController
@RequestMapping("/user")
@Tag(name = "用户信息管理")
public class HelloController {@Operation(summary = "根据id获取用户信息")@GetMapping("getById")public User getUserById(@Parameter(description = "用户id") @RequestParam Long id) {User user = new User();user.setId(id);user.setName("zhangsan");user.setAge(11);user.setEmail("zhangsan@email.com");return user;}
}

查看Knife4j界面

image-20240604233240169

http://www.lryc.cn/news/363759.html

相关文章:

  • 一文读懂银行承兑汇票:从申请到使用全攻略
  • 唯众智联网(AIoT)应用开发教学实训解决方案
  • 归纳跨域几种解决方案
  • LeetCode刷题第3题(C#)
  • 了解一下Ubuntu Linux
  • 单一原则+干湿分离,让你的架构能力起飞
  • 如何恢复永久删除的照片?
  • 一文看懂llama2(原理模型训练)
  • Sui基金会公布2024年3–4月资助项目名单
  • Spring Security3.0.1版本
  • 网络报文协议头学习
  • 颜色与纹理
  • pytest-playwright 插件的使用
  • 基于springboot实现智慧校园之家长子系统项目【项目源码】计算机毕业设计
  • 云WAF的安全审计功能
  • 第十七章 创建Web客户端 - 其他调整
  • 学习java的日子 Day52 多表联合查询,DCL,数据类型,约束,索引,视图
  • 计算机视觉(CV)的教程、相关项目
  • mysql in 逗号分隔_数据库字段是逗号分隔的查询(FIND_IN_SET(str,strlist)方法的使用)
  • 【Python】 将日期转换为 datetime 对象在 Python 中
  • dpdk-19.11 arm64 环境适配 Mellanox CX4 网卡
  • 1141. 查询近30天活跃用户数
  • 11_JavaWeb监听器
  • jmeter常用的断言
  • Opencv Python图像处理笔记二:图像变换、卷积、形态学变换
  • 使用若依框架RuoYi前后端分离版+运行+自动生成页面进行导入进行开发+工具(完整版)
  • 开源博客项目Blog .NET Core源码学习(29:App.Hosting项目结构分析-17)
  • 2021 hnust 湖科大 计组课设 包含multisim14连线文件,报告,指导书
  • CHATGPT升级plus(已有账号前提下)
  • 通过血清拉曼光谱进行COVID-19的高效初步筛查