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

SpringBoot整合Knife4j

文章目录

    • 1.Swagger 介绍
    • 2.Knife4j 介绍
    • 3.Knife4j 使用
      • 1.依赖
      • 2.配置类
      • 2.常用注解

1.Swagger 介绍

  • Swagger是一种基于OpenAPI规范的API文档生成工具,它可以根据Java代码中的注解自动生成API接口文档,并提供UI界面进行在线测试和调试。

  • Swagger为开发人员提供了更加方便、直观的API管理方式,有助于提升API的可读性和可维护性。

  • Swagger的主要特点包括:

1、自动生成API文档:通过在Java代码中添加Swagger注解,Swagger能够自动地解析API接口的参数、响应等信息,并生成相应的API文档。

2、在线测试接口:Swagger提供了UI界面,可以方便地进行API接口的测试和调试,无需单独使用HTTP客户端来测试接口。

3、支持多种语言和框架:Swagger不仅支持Java语言和Spring框架,还支持多种其他语言和框架,如PHP、Python、Go等。

4、扩展性强:Swagger提供了多种扩展机制和插件,可以满足各种项目的需要,如集成OAuth2、自定义UI等。

Swagger提供的UI界面相比于另外一款Api文档生成工具Knife4j较为简陋。

2.Knife4j 介绍

  • Knife4j是一种基于Swagger构建的增强工具,它在Swagger的基础上增加了更多的功能和扩展,提供了更加丰富的API文档管理功能。相比于原版Swagger,Knife4j的主要特点包括:

1、更加美观的UI界面:Knife4j通过对Swagger UI的修改和优化,实现了更加美观、易用的UI界面,提升了开发人员的体验感。

2、支持多种注解配置方式:除了支持原版Swagger的注解配置方式外,Knife4j还提供了其他几种注解配置方式,方便开发人员进行不同场景下的配置。

3、提供多种插件扩展:Knife4j提供了多种插件扩展,如knife4j-auth、knife4j-rate-limiter等,可以满足不同项目的需求。

4、集成Spring Boot Starter:Knife4j发布了spring-boot-starter-knife4j,可以实现更加便捷的集成,并支持配置文件中的动态属性调整。

3.Knife4j 使用

1.依赖

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

2.配置类

在模块中模添加knife4j所需要的配置类

@Configuration
public class Knife4jConfig {@Beanpublic GroupedOpenApi adminApi() {      // 创建了一个api接口的分组return GroupedOpenApi.builder().group("admin-api")         // 分组名称.pathsToMatch("/admin/**")  // 接口请求路径规则.build();}/**** @description 自定义接口信息*/@Beanpublic OpenAPI customOpenAPI() {return new OpenAPI().info(new Info().title("接口文档").version("1.0").description("接口文档").contact(new Contact().name("zuozhe"))); // 设定作者}}

访问:http://ip:port/doc.html,即可看到类似下面的界面。

在这里插入图片描述

2.常用注解

@Tag: 用在controller类上,对controller进行说明
@Operation: 用在controller接口方法上对接口进行描述
@Parameters:用在controller接口方法上对单个参数进行描述
@Schema: 用在实体类和实体类属性上,对实体类以及实体类属性进行描述

示例

@Data
@Schema(description = "用户登录请求参数")
public class LoginDto {@Schema(description = "用户名")private String userName ;@Schema(description = "密码")private String password ;@Schema(description = "提交验证码")private String captcha ;@Schema(description = "验证码key")private String codeKey ;}
@Tag(name = "首页接口")
public class IndexController {@Operation(summary = "用户登录")public Result<LoginVo> login(@RequestBody LoginDto loginDto) {...}@Operation(summary = "用户退出")@Parameters(value = {@Parameter(name = "令牌参数" , required = true)})@GetMapping(value = "/logout")public Result logout(@RequestHeader(value = "token") String token) {...}}

相关文章:

  • Linux信号处理浅析
  • Kubernetes WebHook 入门 -- 入门案例: apiserver 接入 github
  • Flyio封装API接口(uniapp开发微信小程序)
  • linux(ubuntu)中drontab定时器命令详解
  • MySQL之导入导出远程备份(详细讲解)
  • 在VS Code中安装Copilot与安装其他扩展的方法一样,只需简单几步
  • Filter Options in Select Field
  • BERT Intro
  • 图像中部分RGB矩阵可视化
  • JavaSec基础 反射修改Final修饰的属性及绕过高版本反射限制
  • [VSCode] VSCode 常用快捷键
  • Java设计模式-访问者模式
  • 世邦spon IP网络对讲广播系统任意文件上传漏洞
  • LabVIEW在旋转机械故障诊断中的随机共振增强应用
  • C++系列十六:枚举
  • 分享的文章《人生如棋》
  • [Vue CLI 3] 配置解析之 css.extract
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 【面试系列】之二:关于js原型
  • Angular2开发踩坑系列-生产环境编译
  • css布局,左右固定中间自适应实现
  • export和import的用法总结
  • iOS 系统授权开发
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Js基础知识(四) - js运行原理与机制
  • Laravel5.4 Queues队列学习
  • nfs客户端进程变D,延伸linux的lock
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • win10下安装mysql5.7
  • 回流、重绘及其优化
  • 坑!为什么View.startAnimation不起作用?
  • 微信公众号开发小记——5.python微信红包
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 再谈express与koa的对比
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 容器镜像
  • #每天一道面试题# 什么是MySQL的回表查询
  • (9)STL算法之逆转旋转
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (规划)24届春招和25届暑假实习路线准备规划
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (一)80c52学习之旅-起始篇
  • (转)setTimeout 和 setInterval 的区别
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET Framework杂记
  • .NET企业级应用架构设计系列之结尾篇