黑豹程序员-架构师学习路线图-百科:Knife4j API接口文档管理

文章目录

  • 由来:接口文档
  • 第一代:Swagger
  • 第二代:Knife4j
  • 界面

由来:接口文档

古老编程是一个语言前后端通吃,ASP、JSP、PHP都是如此。
但随着项目规模变大,项目团队也开始壮大,岗位职责开始细分,逐渐前端和后端分离成两个岗位,技术栈也逐渐分开。
大前端的兴起这个更加加剧,泾渭分明。

前端目前采用H5、CSS3、JavaScript ES6、Vue3,而后端Java、SpringBoot、SMMP、SpringClould。

这里前端访问后端技术栈的不同,衔接时的矛盾也越来越凸显。
如:后端对应的模块是什么?后端对应的参数、类型、返回值等。
看着很简单啊,开过发的同学就知道,开发时需求老变,链接地址可能变了,参数可能变了,参数类型可能变了,返回值可能变了。这个一变你之前做好的程序那不得统统改了。可因为两个人做,后端改了,没告诉前端,前端不知道,第二天用时怎么错了?查了半天问题,最后发现是后端参数改了。那他不气不发火才怪。

有同学说,不是有接口文档吗?是有,有几个项目的接口文档是能看的?改着改着你就不愿意改了,从而很多接口文档就成了摆设,满篇都是错的。

第一代:Swagger

接口文档是我们的桥梁,后端不能很好维护,这就造成了问题。怎么解决呢?
没有好方法,人是不自觉的,你总不能成天盯着他吧,那更加耗费人力物力。

不知道何时,蹦出来个Swagger,这个东西好。它发明了一套注解@Api @ApiOperation,通过注解,它自动生成API接口文档。

开发人员不是懒得更新文档吗?你总的更新代码吧,那注解就在代码旁边,你总能随手改了吧,而且比改文档,那改的非常少了,如果是代码变动,那都不用改。这极大减少了开发者的工作了,一出来就深受喜爱。

同时,Swagger自动生成的页面就放在项目中,这样后台项目启动,接口文档就可以在浏览器上直接访问,真不要太方便了啊。
还有那,不光如此文档不用写了,Swagger还做了个API测试。
因为我们开发完后端代码时,前端代码可能还没有呢,此时我们想去测试下后端代码的正确性。
Swagger提供了API测试的URL链接,我们还可以配置请求参数,甚至是json格式。 是不是太贴心,太方便了。

但Swagger还是有些页面粗糙,臃肿集成时不方便,又出现了Knife4j。

第二代:Knife4j

Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案

Knife4j的前身是swagger-bootstrap-ui。在swagger-bootstrap-ui的1.8.5~1.9.6版本之间,采用的是后端Java代码和Ui都混合在一个Jar包里面的方式提供给开发者使用。这种方式虽说对于集成swagger来说很方便,只需要引入jar包即可,但是在微服务架构下显得有些臃肿。

取名knife4j是希望她能像一把匕首一样小巧、轻量、并且功能强悍,更名也是希望把她做成一个为Swagger接口文档服务的通用性解决方案。

目前主要支持以Java开发为主,并且是依赖于大环境下使用的Spring MVC、Spring Boot、Spring Cloud框架.
当然,Knife4j也提供了离线版本,只要是符合Swagger的OpenAPI版本的规范JSON,都可以通过简单的配置进行适配,离线版本是适合于任何语言中使用Swagger的,非常的灵活、方便。

界面

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

【STM32】定时器

systick定时器: 【STM32】Systick定时器-CSDN博客 0.通用定时器框图 1.时钟源 2.控制器 3.输入捕获 计数器实际上是与比较寄存器的影子寄存器进行比较的。 4.输出比较 1.STM32的定时器学习要点 参考手册 STM32F1xx中文参考手册.pdf 林何/STM32F103C8 - 码云 -…

Leetcode-394 字符串解码(不会,复习)

此题不会!!!!!!!!!!!! 题解思路:元组思想:数字[字符串],每次遇到中括号意味着要重复数字次字符串…

Web APIs——综合案例

1、学生就业统计表 2、渲染业务 根据持久化数据渲染页面 步骤: ①:读取localstorage本地数据 如果有数据则转换为对象放到变量里面一会使用它渲染页面如果没有则用默认空数组[]为了测试效果,可以先把initData存入本地存储看效果 ②&…

Oracle11g for centos7

准备工作 x86 centos7 oracle11G 环境搭建 配置好虚拟机,网络通畅,建议最少3G内存。 安装依赖 yum install binutils compat-libstdc-33 glibc* ksh gcc gcc-c libgcc libstdc* libaio libaio-devel libXext libX11 libXau libxcb libXi make sy…

2023第六届泰迪杯数据分析,第五届泰迪杯数据分析技能赛B题源码图片分享

需要B题源码以及第六届带队”指导“请私信本人,团队包含技能赛双一等,数学建模省一,泰迪杯挖掘国一,研究生队友。 去年一等作品可视化图如下,私信获取源码

static关键字的三种用法

在C语言中,关键字"static"可以用于不同的上下文,具有不同的作用。以下是"static"在C语言中的主要作用: 1. 静态变量(Static Variables): 在C语言中,使用static关键字来声明…

Java算法(五):手写数组逆置API方法,实现数组逆置。 while实现 for循环实现

Java算法(五) while 循环实现 需求: 已知一个数组,arr {11, 22, 33, 44, 55};使用程序实现把数组中的元素交换位置。 交换后的数组为 arr {55, 44, 33, 22, 11}; 并在控制台输出交换后的数组元素。 代码示例 package com.…

JS 处理文档选择和范围创建【createRange | getSelection】

介绍 1、const selection window.getSelection(); 说明: 1、用于获取用户当前文档选择的对象; 2、它返回一个 Selection 对象,该对象代表了用户选择的文本范围(可以包含一个或多个范围,因为用户可以同时选择多个不相…

YOLO目标检测——红绿灯检测数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用:红绿灯检测数据集在自动驾驶、交通安全监控、智能交通系统、交通流量监测和驾驶员辅助系统等领域都有广泛应用的潜力数据集说明:红绿灯检测数据集,真实场景的高质量图片数据,数据场景丰富,含有国内红绿灯…

Android:OkHttp同步请求和异步请求

一、前言 网络请求之前工作中用到的是post请求,然后了解之后发现请求的种类还有很多种。下面着重讲到是get和post的同步请求和异步请求。 二、具体内容 1.Okhttp的特点: 支持Http/2并允许对同一主机的所有请求共享一套接字;如果非HTTP/2&…

运维相关(一) - Vue项目配置WebSocket连接{ws、wss 连接方式}

Vue项目配置WebSocket连接 ws、wss 两种方式 1. 写作背景2. 晒出代码2.1 前端 vue.config.js 的代码2.2 Vue项目路由配置代码3.3 服务器Nginx配置 3. 使用方式3.1 前端代码3.2 后端代码 4. 测试使用 1. 写作背景 项目使用的是ruoyi的前后端分离框架项目需要使用到 websocket , …

数据结构与算法—双链表

前言 前面有很详细的讲过线性表(顺序表和链表),当时讲的链表以单链表为主,但在实际应用中双链表有很多应用场景,例如大家熟知的LinkedList。 双链表与单链表区别 单链表和双链表都是线性表的链式实现,它们的主要区别在于节点结构…

lua 时间差功能概略

简介 在进行程序设计过程中,经常需要对某些函数、某些程序片断从开始运行到运行结束所耗费的时间进行一些量化。这种量化实际上就是计算时间差。 获取函数耗时情景如下: function time_used() --开始计时-- do something at here. --结束计时--时间差&…

交易所开发搭建

在当今的数字货币市场中,交易所开发搭建已经成为了一个重要的领域。交易所是数字货币交易的主要场所,为投资者提供了安全、可靠、高效的交易服本务文。将详细介绍交易所开发搭建的整个流程,包括需求分析、设计、技术选型、开发、测试和上线等…

【2】Spring Boot 3 项目搭建

目录 【2】Spring Boot 3 初始项目搭建项目生成1. 使用IDEA商业版创建2. 使用官方start脚手架创建 配置与启动Git版本控制 个人主页: 【⭐️个人主页】 需要您的【💖 点赞关注】支持 💯 【2】Spring Boot 3 初始项目搭建 项目生成 1. 使用IDEA商业版创…

【Element】隐藏 el-table 展开行的箭头

需求 点击行展开行,隐藏箭头 方法 首先需求是点击行显示展开行 row-click"rowClick"const rowClick (row: any, column: any, event: any) > {console.log(row, column, event)if (multipleTable.value) {multipleTable.value.toggleRowExpansio…

PostgreSQL 技术内幕(十一)位图扫描

扫描算子在上层计算和底层存储之间,向下扫描底层存储的数据,向上作为计算的输入源,在SQL的执行层中,起着关键的作用。顺序、索引、位图等不同类型的扫描算子适配不同的数据分布场景。然而,扫描算子背后的实现原理是怎样…

投资自己,成就未来——人大女王金融硕士助力您成为金融领域的佼佼者

在这个日新月异的时代,金融行业的发展日益繁荣,对于金融人才的需求也越来越大。为了应对这一挑战,越来越多的人选择投身金融领域,提升自己的专业素养。而中国人民大学女王金融硕士项目,正是为了满足这一需求而设立的&a…

JVM在线分析-解决问题的工具一(jinfo,jmap,jstack)

1. jinfo (base) PS C:\Users\zishi\Desktop> jinfo Usage:jinfo <option> <pid>(to connect to a running process)where <option> is one of:-flag <name> to print the value of the named VM flag #输出对应名称的参数-flag [|-]<n…