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

Springboot 整合 Knife4j (API文档生成工具)

目录

一、Knife4j 介绍

二、Springboot 整合 Knife4j

1、pom.xml中引入依赖包

2、在application.yml 中添加 Knife4j 相关配置

3、打开 Knife4j UI界面

三、关于Knife4j框架中常用的注解

1、@Api

2、@ApiOperation

​3、@ApiOperationSupport(order = X)

​4、@ApiImplicitParam  

5、@ApiModel / @ApiModelProperty

四、支持接口调试

五、离线下载


一、Knife4j 介绍

Knife4j 是一个基于 Swagger 构建的开源 Java API 文档工具,主要包括两大核心功能:文档说明和在线调试。使用简单的配置和注解就可以节省写接口文档的时间了,舒服!😄😄😄

二、Springboot 整合 Knife4j

1、pom.xml 中引入依赖包

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

2、在 application.yml 中添加 Knife4j 相关配置

server:port: 5555knife4j:enable: trueopenapi:title: 接口文档description: "接口文档生成"email: ""concat: adminurl: https://docs.xiaominfo.comversion: v4.0license: Apache 2.0license-url: https://stackoverflow.com/terms-of-service-url: https://stackoverflow.com/group:test1:group-name: 分组名称api-rule: packageapi-rule-resources:- com.example.springbootzy

3、打开 Knife4j UI界面

浏览器地址栏输入:http://127.0.0.1:服务端口号/doc.html

三、关于Knife4j框架中常用的注解

1、@Api

作用于Controller类上,通过此注解的tags属性,可以指定模块名称,并且模块名称前添加数字, Knife4j会根据这些数字将各个模块做升序排列。

@RequestMapping("/common")
@RestController
@Api(tags= "01 通用模块")
public class CommonController {@PostMapping("/queryByCondition")public String queryByCondition(@RequestBody QueryCondition queryCondition) {return "this is common demo";}
}@RestController
@RequestMapping("/user")
@Api(tags= "02 用户模块")
public class UserController {@PostMapping("/queryUser")public String queryUser(@RequestBody QueryCondition queryCondition) {return "this is user demo";}
}@Api(tags= "03 公司模块")
@RestController
@RequestMapping("/company")
public class CompanyController {@PostMapping("/queryCompany")public String queryCompany(@RequestBody QueryCondition queryCondition) {return "this is company demo";}
}

2、@ApiOperation

作用于 Controller 类中的方法上,用于描述 API 接口的功能和作用。

@RequestMapping("/common")
@RestController
@Api(tags= "01 通用模块")
public class CommonController {@ApiOperation("根据条件查询数据")@PostMapping("/queryByCondition")public String queryByCondition(@RequestBody QueryCondition queryCondition) {return "this is common demo";}
}

 3、@ApiOperationSupport(order = X)

作用于 Controller 类中的方法上,通过此注解的 order 属性(int),可以指定排序序号。

@RequestMapping("/common")
@RestController
@Api(tags= "01 通用模块")
public class CommonController {@ApiOperation("根据条件查询数据")@ApiOperationSupport(order = 2)@PostMapping("/queryByCondition")public String queryByCondition(@RequestBody QueryCondition queryCondition) {return "this is common demo";}@ApiOperation("保存")@ApiOperationSupport(order = 3)@PostMapping("/add")public String add(@RequestBody QueryCondition queryCondition) {return "this is add";}@ApiOperation("更新")@ApiOperationSupport(order = 1)@PostMapping("/update")public String update(@RequestBody QueryCondition queryCondition) {return "this is update";}
}

 4、@ApiImplicitParam  

 作用于 Controller 类中的方法上,用于描述方法入参的详细信息。

@ApiOperation("根据主键ID查询")@ApiOperationSupport(order = 4)@ApiImplicitParam(name = "id", value = "主键ID", required = true, dataType = "Long", paramType = "path")@PostMapping("/queryById/{id}")public String queryById(@PathVariable Long id) {return "this is queryById";}

5、@ApiModel / @ApiModelProperty

@ApiModel:作用于 POJO 类上,描述该对象的作用。

@ApiModelProperty:作用于 POJO 类的属性上,描述参数信息。

@ApiModel("通用查询条件实体")
@Data
public class QueryCondition {@ApiModelProperty(value = "页码", required = true, example = "1")private Integer pageSize;@ApiModelProperty(value = "每页显示数量", required = true, example = "20")private Integer pageNum;@ApiModelProperty(value = "主键ID", required = false, example = "1",dataType ="Long")private Long id;@ApiModelProperty(value = "名称", required = false, example = "张三")private String name;
}

四、支持接口调试

调用接口需要传 Token 的时候,可以在【全局参数配置】中添加 Token(或叫:Authorization,具体看自己项目定义):

五、离线下载


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

相关文章:

  • C语言---------strlen的使用和模拟实现
  • 【MATLAB源码-第168期】基于matlab的布谷鸟优化算法(COA)机器人栅格路径规划,输出做短路径图和适应度曲线。
  • 集合深入------理解底层。
  • 【阅读笔记】《硬笔书法艺术》
  • 5.5.5、【AI技术新纪元:Spring AI解码】使用PGvector设置向量存储及进行相似性搜索
  • EDR下的线程安全
  • 洛谷刷题 | B3623 枚举排列
  • 程序员35岁会失业吗?
  • RabbitMQ 安装保姆级教程
  • 【MySQL】InnoDB引擎
  • 小白如何兼职赚得第一桶金?六大网络赚钱方式助你轻松开启副业之旅
  • 富格林:出金不顺谨防虚假受害
  • Saltstack 最大打开文件数问题之奇怪的 8192
  • Appium Inspector 展示设备当前页面
  • PyQt:实现菜单栏的点击拖动效果
  • 力扣--并查集547.省份数量
  • leetcode35-Search Insert Position
  • API 接口渗透测试
  • oracle 19c单机版本补丁升级
  • 推荐系统的未来:大模型驱动的个性化推荐技术与挑战
  • Allegro许可管理工具
  • React函数组件Hook
  • 【FinalShell】远程连接 Linux 工具 FinalShell 的使用:查看 AI 语言大模型对话实时日志
  • ARM Coresight 系列文章 11.1 -- CoreSight Cortex-M33 CTI 详细介绍】
  • Linux常用操作命令(清单快查版)
  • [C语言]结构体、位段、枚举常量、联合体
  • LangChain核心模块 Retrieval——文档加载器
  • 力扣爆刷第104天之CodeTop100五连刷6-10
  • Docker操作基础命令
  • 穿越地心:3D可视化技术带你领略地球内部奇观