Knife4j的相关知识点!!

一、基础概念

knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望它能像一把匕首一样小巧,轻量,并且功能强悍!

Knif4j(原名为 Swagger-Bootstrap-UI)是一款基于 Swagger 实现的文档管理工具,旨在简化接口文档的编写和管理。它提供了一套美观的界面,能够自动生成接口文档,并支持在线调试接口。Knif4j 是针对 Java 后端项目的接口文档管理工具,可以与 Spring Boot 等框架很好地集成使用。

二、Knif4j 主要具有以下特点

  1. 自动生成接口文档:根据代码中的 Swagger 注解,Knif4j 能够自动生成接口文档,包括接口信息、请求参数、响应参数等,极大地减少了编写接口文档的工作量。

  2. 可视化界面:Knif4j 提供了美观的界面,以树形结构展示接口信息,用户可以方便地浏览和查看接口文档。

  3. 在线调试接口:Knif4j 支持在线调试接口,用户可以在界面上直接输入参数并发送请求,实时查看接口的返回结果,方便进行接口测试和调试。

  4. 权限控制:Knif4j 支持对接口文档的访问权限控制,可以设置不同的用户角色和权限,保障接口文档的安全性。

5.基础特性:兼容OpenAPI 2.0和OpenAPI 3.0,提供自定义文档、动态参数调试、I18n、接口排序、导出等功能。

6.增强扩展 :基于Springfox框架和Swagger2规范的自动注入starter,以及基于Springdoc-openapi和OAS3规范的自动注入starter。

7.框架适配:适配Spring MVC、Spring Boot 2.2至3.0、Spring WebFlux等框架。

8.社区生态:包括基于Servlet体系的微服务聚合中间件Knife4jAggregation、基于Spring Cloud Gateway网关聚合的微服务聚合中间件Knife4jDesktop。

三、使用步骤

1.导入Maven坐标,添加依赖:

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

2.在配置类中加入相关配置:

 /**
     * 通过knife4j生成接口文档
     * @return
     */
    @Bean
    public Docket docket1() {
        log.info("准备生成接口文档......");
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("接口文档")
                .version("2.0")
                .description("项目接口文档")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .groupName("管理端接口")
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.sky.controller.admin"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }

3.设置静态资源,否则接口文档无法访问

/**
     * 设置静态资源映射
     * @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}

4.接口文档访问路径:http://localhost:8080/doc.html

5.常用注解:

四、YaPi和Swagger的区别

功能对比:

  • Swagger 是一组用于编写基于REST的API的开源工具,它提供了生成、描述、调用和可视化RESTful风格的Web服务的规范和框架。Swagger支持自动发现和代码生成,便于后端集成,但界面设计较为简单。

  • YApi 是一个高效、易用、功能强大的API管理平台,它不仅提供了常用的接口管理功能,还包括权限管理、Mock数据、Swagger数据导入等功能。YApi支持导入导出,方便从Swagger迁移数据,而且支持批量接口测试和自动化测试。13

2.使用方式对比:

  • Swagger 可以通过Swagger UI进行在线文档的查看和测试,但目前还不支持批量接口测试。Yapi 是设计阶段使用的工具,管理和维护接口

  • YApi 需要导入文档,虽然也可以通过Swagger轮询导入,但与Swagger相比,YApi支持权限管理和团队协作等功能。Swagger 在开发阶段使用的框架,帮助后端开发人员做后端的接口测试

3.界面设计对比:

  • Swagger 的界面更像是一个接口文档,返回响应体以代码形式展示,且无法格式化。

  • YApi 的界面更像是一个管理系统,提供了清晰的接口管理和调试功能,如可折叠的返回数据和批量测试接口。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux命令之Tmux

1. Tmux是什么&#xff1f; Tmux是一个终端复用器&#xff08;terminal multiplexer&#xff09;&#xff0c;属于常用的开发工具&#xff0c;学会了之后可以大大的提高工作效率。 1.1 基本概念 在使用tmux之前我们先了解关于tmux的几个名词&#xff1a; session&#xff0c…

[Qt] 点击QTableWidget item项后键盘输入导致崩溃

复现场景 Qt版本 5.9.8 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);ui->tableWidget->setRowCount(1);ui->tableWidget->setColumnCount(2);Q…

【数据结构取经之路】栈

目录 引言 栈的性质 顺序栈 栈的基本操作 初始化 销毁 插入 删除 判空 取栈顶元素 栈的大小 完整代码&#xff1a; 引言 栈(stack)&#xff0c;可以用数组实现&#xff0c;也可以用链表实现。用数组实现的栈叫顺序栈&#xff0c;用链表实现的栈叫链式栈&#…

PriorityQueue集合源码分析

PriorityQueue集合源码分析 文章目录 PriorityQueue集合源码分析前置知识一、字段分析二、构造函数分析三、方法分析四、总结 PriorityQueue 优先级队列&#xff0c;是基于堆的结构来构建的。而堆是基于完全二叉树来实现的&#xff0c;而二叉树除了可以用节点来实现也可以用数组…

移动WEB开发之流式布局

一、移动端基础 1、浏览器 总结&#xff1a;兼容移动端主流浏览器&#xff0c;处理webkit内核浏览器即可。 2、移动端调试方法 Chrome devtools&#xff08;谷歌浏览器&#xff09;的模拟手机调试 搭建本地web服务器&#xff0c;手机和服务器一个区域网内&#xff0c;通过手机…

SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测

SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测 目录 SCI一区 | Matlab实现GWO-TCN-BiGRU-Attention灰狼算法优化时间卷积双向门控循环单元融合注意力机制多变量时间序列预测预测效果基本介绍模型描述程序…

框架篇常见面试题

1、Spring框架的单例bean是线程安全的吗&#xff1f; 2、什么是AOP&#xff1f; 3、Spring的事务是如何实现的&#xff1f; 4、Spring事务失效的场景 5、SpringBean的声明周期 6、Spring的循环依赖 7、SpringMVC的执行流程 8、SpringBoot自动配置原理 9、Spring常见注解

解决MySQL “Lock wait timeout exceeded; try restarting transaction“ 错误

在处理MySQL数据库时&#xff0c;我们偶尔会遇到一个棘手的错误消息&#xff1a;“Lock wait timeout exceeded; try restarting transaction”。这通常表明我们的一个事务在尝试获取资源时被阻塞了太长时间。在并发环境中&#xff0c;多个事务同时竞争相同的资源可能会导致这种…

安卓手机切换国内IP地址的几种方法详解

随着互联网的普及和移动设备的广泛使用&#xff0c;IP地址已经成为了日常生活中不可或缺的一部分。IP地址不仅可以帮助大家在互联网上找到目标设备&#xff0c;还可以为网络安全提供一定的保障。然而&#xff0c;在某些情况下&#xff0c;可能需要切换国内IP地址&#xff0c;例…

SpringCloud Bus 消息总线

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第八篇&#xff0c;即介绍 Bus 消息总线。 二、概述 2.1 遗留的问题 在上一篇文章的最后&#xff0c;我…

源码部署LAMP架构

LAMP 文章目录 LAMP1. lamp简介2. web服务器工作流程2.1 cgi与fastcgi2.2 httpd与php结合的方式2.3 web工作流程 3. LAMP平台构建3.1 安装httpd3.2 安装mysql3.3 安装php3.4 验证 1. lamp简介 有了前面学习的知识的铺垫&#xff0c;今天可以来学习下第一个常用的web架构了。 …

腾讯云服务器按月收费价格表,优惠价格5元一个月起

2024腾讯云服务器多少钱一个月&#xff1f;5元1个月起&#xff0c;腾讯云轻量服务器4核16G12M带宽32元1个月、96元3个月&#xff0c;8核32G22M配置115元一个月、345元3个月&#xff0c;腾讯云轻量应用服务器61元一年折合5元一个月、4核8G12M配置646元15个月、2核4G5M服务器165元…

● 647. 回文子串 ● 516.最长回文子序列 ● 动态规划总结篇

● 647. 回文子串 1.dp数组含义。 之前的题目&#xff0c;差不多都是求什么就怎么定义dp数组&#xff0c;最后返回dp的最后一个元素。但是这里如果定义一维数组dp[i]是[0,i]范围的回文子串的个数的话&#xff0c;怎么根据dp[i-1]得到dp[i]&#xff1f;发现很难找到递归关系…

窗口函数(sample database classicmodels _No.8 )

窗口函数&#xff08;sample database classicmodels _No.8 &#xff09; 准备工作&#xff0c;可以去下载 classicmodels 数据库具体如下 点击&#xff1a;classicmodels 也可以去 下面我的博客资源下载 https://download.csdn.net/download/tomxjc/88685970 文章目录 窗口函…

Java八股文(RabbitMQ)

Java八股文のRabbitMQ RabbitMQ RabbitMQ RabbitMQ 是什么&#xff1f;它解决了哪些问题&#xff1f; RabbitMQ 是一个开源的消息代理中间件&#xff0c;用于在应用程序之间进行可靠的异步消息传递。 它解决了应用程序间解耦、消息传递、负载均衡、故障恢复等问题。 RabbitMQ …

鸿蒙开发学习:【appspawn应用孵化组件】

功能简介 应用孵化器&#xff0c;负责接受应用程序框架的命令孵化应用进程&#xff0c;设置其对应权限&#xff0c;并调用应用程序框架的入口。 基本概念 appspawn注册的服务名称为“appspawn”。appspawn 通过监听本地socket&#xff0c;接收来自客户端的请求消息。消息类型…

Linux-MDK can电机带导轨 C++封装

我使用的是MKS的52D can电机带导轨&#xff0c;现在我要根据电机说明书将运动指令封装&#xff0c;有一个限位开关&#xff0c; 闭合时高电平 滑块需要运动在限位开关左侧&#xff0c;所以限位归零的方向为顺时针 根据说明书&#xff0c;我要设置的命令应该是&#xff1a; ca…

JavaScript实现简单的表单验证

关键代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

13|连接数据库:通过链和代理查询鲜花信息

新的数据库查询范式 提出问题&#xff1a;用户用自然语言提出一个问题&#xff0c;例如“去年的总销售额是多少&#xff1f;”。LLM 理解并转译&#xff1a;LLM 首先会解析这个问题&#xff0c;理解其背后的意图和所需的信息。接着&#xff0c;模型会根据解析的内容&#xff0c…

蓝桥杯---代分数

import java.util.Scanner;public class top4 {//全排列分数的那个题目//首先进行n个数的全排列//然后将这n个数字拆分为3个数字&#xff0c;即插入两个板子//然后判断等式是否成立&#xff08;判断条件就是在if里面去进行相关的判断是吗&#xff1f;&#xff1f;&#xff09;s…