Knife4j的介绍与使用

目录

  • 一、简单介绍
      • 1.1 简介
      • 1.2 主要特点和功能:
  • 二、使用步骤:
      • 2.1 添加依赖:
      • 2.2 yml数据源配置
      • 2.3 创建knife4j配置类
      • 2.4 注解的作用
    • 最后

一、简单介绍

1.1 简介

  • Knife4j 是一款基于Swagger的开源文档管理工具,主要用于生成和管理 API 文档。
    在这里插入图片描述

  • 它提供了一套美观、功能强大的界面,可以帮助开发者快速浏览、测试和理解后端 API 接口。

1.2 主要特点和功能:

Swagger 兼容性:

Knife4j 基于 Swagger,能够兼容 Swagger 的各种功能和注解,支持生成符合 OpenAPI 规范的文档。

可视化界面:

Knife4j 提供了直观的可视化界面,展示 API 接口的详细信息,包括请求、响应、参数说明等。

在线调试和测试:

在 Knife4j 的界面中,可以直接对 API 进行调试和测试,支持修改参数、发送请求并查看响应结果,方便开发者进行接口的验证和调试。

权限控制:

可以配置权限控制,限制特定用户或角色访问和操作 API 文档,保障接口的安全性。

自定义配置:

Knife4j 提供了丰富的配置选项,开发者可以根据项目需求进行自定义配置,如修改 UI 样式、调整文档的展示内容等。

集成简便:

集成 Knife4j 到项目中相对简单,一般通过 Maven 或 Gradle 添加依赖,并在 Spring Boot 项目中配置即可快速启用。

二、使用步骤:

2.1 添加依赖:

在项目的 Maven 或 Gradle 配置文件中添加 Knife4j 的依赖。

Maven 示例:

  <!--  接口文档 --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version></dependency>

2.2 yml数据源配置

spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/database?serverTimezone=UTCusername: rootpassword: root# 数据库连接池type: com.alibaba.druid.pool.DruidDataSourcemvc:pathmatch: # Springfox使用的路径匹配是基于AntPathMatcher的# 所以需要配置此参数matching-strategy: ant_path_matcher

2.3 创建knife4j配置类

@Configuration // 开启配置
@EnableSwagger2 // 启动Swagger2
public class Knife4jConfiguration {@Beanpublic Docket defaultApi2() {String groupName = "1.0版本";Docket docket = new Docket(DocumentationType.OAS_30)// 是否启用Swagger,true启用,false不启用.enable(true).apiInfo(new ApiInfoBuilder().title("这是LiCoffee-Test-knife4j API ").description("这是项目描述").termsOfServiceUrl("服务器URL").contact(new Contact("LiCoffee", null, "qiushiju0828@163.com")).version("1.0").build())//分组名称.groupName(groupName).select()// 这里指定Controller扫描包路径,没有加注解的接口方法也会生成接口文档.apis(RequestHandlerSelectors.basePackage("com.controller"))// 这里指定只有加了注解的才会生成接口文档//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();return docket;}
}

以上就配置完了,还有一些小细节下在讲,通过访问http://localhost:8080[/项目名]/doc.html

在这里插入图片描述

2.4 注解的作用

@Api(tags = "接口描述信息")

添加在controller层的类上

在这里插入图片描述


    @ApiOperation("根据用户ID查找")

添加在方法上

在这里插入图片描述


其他

  • @ApiModel:用对象来接收参数 ,修饰类

  • @ApiModelProperty:用对象接收参数时,描述对象的一个字段

    例如:

    @ApiModel(description = "用户实体类")
    public class User {@ApiModelProperty(name="id", value="用户id")private Integer id;@ApiModelProperty(value="用户姓名")private String name;
    
  • @ApiResponse:HTTP响应其中1个描述

  • @ApiResponses:HTTP响应整体描述,一般描述错误的响应

    // 针对响应状态 修饰方法
    @ApiResponses({@ApiResponse(code=500, message = "服务器异常")})
    
  • @ApiIgnore:使用该注解忽略这个API

    @ApiError :发生错误返回的信息

    @ApiParam:单个参数描述,用在控制器的方法上

    @ApiImplicitParam:一个请求参数,用在方法上

    @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer", paramType = "path")
    
    @ApiImplicitParams({@ApiImplicitParam(),@ApiImplicitParam()})
    
  • 针对返回值,使用泛型表示

    @ApiModel
    public class R {@ApiModelProperty(value = "返回数据状态",notes = "200成功 500失败")private int code;private String msg;@ApiModelProperty(value = "返回数据",notes = "可以是具体的对象,也可以是null")private Object data;
    

通过以上步骤,你可以快速集成 Knife4j 到你的 Spring Boot 项目中,并且利用其提供的强大功能来管理和展示 API 文档。


最后

如果感觉有收获的话,点个赞 👍🏻 吧。
❤️❤️❤️本人菜鸟修行期,如有错误,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/42592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java客户端调用SOAP方式的WebService服务实现方式分析

简介 在多系统交互中&#xff0c;有时候需要以Java作为客户端来调用SOAP方式的WebService服务&#xff0c;本文通过分析不同的调用方式&#xff0c;以Demo的形式&#xff0c;帮助读者在生产实践中选择合适的调用方式。 本文JDK环境为JDK17。 结论 推荐使用Axis2或者Jaxws&#…

拆分pdf文件最简单的方法,pdf怎么拆成一页一张

在数字化的时代&#xff0c;pdf文件已经成为我们日常办公、学习不可或缺的文档格式。然而&#xff0c;有时候我们可能需要对一个大的pdf文件进行拆分&#xff0c;以方便管理和分享。那么&#xff0c;如何将一个pdf文件拆分成多个pdf呢&#xff1f;本文将为你推荐一种好用的拆分…

AFT:Attention Free Transformer论文笔记

原文链接 2105.14103 (arxiv.org) 原文翻译 Abstract 我们介绍了 Attention Free Transformer (AFT)&#xff0c;这是 Transformer [1] 的有效变体&#xff0c;它消除了点积自注意力的需要。在 AFT 层&#xff0c;键key和值value首先与一组学习的位置偏差position biases相结…

Lab1 论文 MapReduce

目录 &#x1f339;前言 &#x1f985;2 Programming Model &#x1f33c;2.1 Example &#x1f33c;2.2 Types &#x1f33c;2.3 More Examples &#x1f985;3 Implementation(实现) &#x1f33c;3.1 ~ 3.3 &#x1f33c;3.4 ~ 3.6 &#x1f985;4 Refinemen…

Anaconda+Pycharm 项目运行保姆级教程(附带视频)

最近很多小白在问如何用anacondapycharm运行一个深度学习项目&#xff0c;进行代码复现呢&#xff1f;于是写下这篇文章希望能浅浅起到一个指导作用。 附视频讲解地址&#xff1a;AnacondaPycharm项目运行实例_哔哩哔哩_bilibili 一、项目运行前的准备&#xff08;软件安装&…

BN的 作用

1、背景&#xff1a; 卷积神经网络的出现&#xff0c;网络参数量大大减低&#xff0c;使得几十层的深层网络成为可能。然而&#xff0c;在残差网络出现之前&#xff0c;网络的加深使得网络训练变得非常不稳定&#xff0c;甚至出现网络长时间不更新或者不收敛的情形&#xff0c;…

ER模型理论和三范式

ER模型理论和三范式 各种关系多对一一对一一对多多对多 三范式理论函数依赖完全函数依赖部分函数依赖传递&#xff08;间接&#xff09;函数依赖 第一范式&#xff1a;属性&#xff08;表字段&#xff09;不可切割第二范式&#xff1a;不能存在 部分函数依赖(都存在完全函数依赖…

2款一键word生成ppt的AI工具,让职场办公更为简单!

在当下主打异步沟通的职场办公环境中&#xff0c;我们与很多人的沟通&#xff0c;都是通过书面材料来达成的&#xff0c;这就让 Word 或文档编辑软件变得更为重要&#xff0c;与此同时&#xff0c;有时为了凸现书面材料中的重点&#xff0c;我们还要将 word 文档转换为 ppt 来进…

2024年06月CCF-GESP编程能力等级认证Python编程五级真题解析

本文收录于专栏《Python等级认证CCF-GESP真题解析》&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 一、单选题&#xff08;每题 2 分&#xff0c;共 30 分&#xff09; 第 1 题 在Python中&#xff0c;print((c for c in “GESP”))的输…

MiniGPT-Med 通用医学视觉大模型:生成医学报告 + 视觉问答 + 医学疾病识别

MiniGPT-Med 通用医学视觉大模型&#xff1a;生成医学报告 视觉问答 医学疾病识别 提出背景解法拆解 论文&#xff1a;https://arxiv.org/pdf/2407.04106 代码&#xff1a;https://github.com/Vision-CAIR/MiniGPT-Med 提出背景 近年来&#xff0c;人工智能&#xff08;AI…

如何让自动化测试框架更自动化?

一、引言 ​对于大厂的同学来说&#xff0c;接口自动化是个老生常谈的话题了&#xff0c;毕竟每年的MTSC大会议题都已经能佐证了&#xff0c;不是大数据测试&#xff0c;就是AI测试等等&#xff08;越来越高大上了&#xff09;。不可否认这些专项的方向是质量智能化发展的方向&…

刷题(day02)

1、leetcode136.删除链表的结点 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。 返回删除后的链表的头节点。 示例 1: 输入: head [4,5,1,9], val 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点&#xff0c;那么在调用了你的函数…

设计模式探索:适配器模式

1. 适配器模式介绍 1.1 适配器模式介绍 适配器模式&#xff08;adapter pattern&#xff09;的原始定义是&#xff1a;将一个类的接口转换为客户期望的另一个接口&#xff0c;适配器可以让不兼容的两个类一起协同工作。 适配器模式的主要作用是把原本不兼容的接口&#xff0c…

c++初阶学习----入门(上)

大家好啊。最近学习了一点关于c的知识。这不就迫不及待的来与大家分享了嘛。但我这也是现学现卖所以咧。有很多遗落甚至不对的地方希望大家可以在评论区里面指出来。这样也可以增加大家对知识的巩固。 c语言与c的联系 不知道大家看到c会不会不由自主的联想到C语言啊。毕竟都是…

手机自带录屏在哪?6个软件教你快速进行手机录屏

手机自带录屏在哪&#xff1f;6个软件教你快速进行手机录屏 手机自带的录屏功能可以让你轻松录制屏幕上的内容&#xff0c;记录游戏过程、制作教程或捕捉其他重要时刻。不同品牌的手机可能在不同位置提供录屏功能。以下是一些常见的手机品牌及其录屏功能位置&#xff0c;以及一…

运动爱好者的新选择:哈氪聆光气传导耳机,轻巧又安全

平时不管是漫步街头、骑行穿梭&#xff0c;还是乘坐公共交通时&#xff0c;我总是喜欢佩戴耳机&#xff0c;借此隔绝外部的喧嚣&#xff0c;享受音乐的乐趣。在户外使用耳机&#xff0c;我更倾向于选择气传导耳机&#xff0c;它们更符合我的需求&#xff0c;因为这种耳机能让我…

SECS/GEM快速完成半导体设备通讯

金南瓜帮助国内大量从事半导体前道设备开发研制、生产的设备厂商&#xff0c;通过快速提供稳定可靠的SECS/GEM、GEM300产品&#xff0c;为客户在激光退火、湿法设备&#xff08;清洗、镀膜等&#xff09;、离子注入、MOCVD、PVD等客户专注于核心工艺提升&#xff0c;提升企业的…

Gen4Gen:多概念个性化图像生成的数据驱动革新

个性化文本到图像生成模型在用户控制生成过程方面取得了重要进展。这些模型能够通过少量训练样本学习并合成包含新颖个性化概念的图像&#xff0c;例如用户的宠物或特定物品。然而&#xff0c;现有技术在处理多概念个性化时存在局限性&#xff0c;尤其是在生成包含多个相似概念…

连接与隔离:Facebook在全球化背景下的影响力

在当今全球化的背景下&#xff0c;Facebook作为全球最大的社交网络平台&#xff0c;不仅连接了世界各地的人们&#xff0c;还在全球社会、经济和文化中发挥着深远的影响。本文将深入探讨Facebook在全球化进程中的作用&#xff0c;以及其对个体和社会之间连接与隔离的双重影响。…

【MATLAB源码-第232期】基于matlab的 (204,188) RS编码解码仿真,采用QPSK调制输出误码率曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 Reed-Solomon码&#xff08;RS码&#xff09;是一类广泛应用于数字通信和存储系统中的纠错码&#xff0c;尤其在光盘、卫星通信和QR码等领域有着重要作用。RS码是一种非二进制的纠删码&#xff0c;由Irving S. Reed和Gustave…