黑豹程序员-架构师学习路线图-百科: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的,非常的灵活、方便。
界面
相关文章:

黑豹程序员-架构师学习路线图-百科:Knife4j API接口文档管理
文章目录 由来:接口文档第一代:Swagger第二代:Knife4j界面 由来:接口文档 古老编程是一个语言前后端通吃,ASP、JSP、PHP都是如此。 但随着项目规模变大,项目团队也开始壮大,岗位职责开始细分&a…...
PHP安全问题:远程溢出、DoS、safe_mode绕过漏洞
一、Web 服务器安全 PHP 其实不过是 Web服务器的一个模块功能,所以首先要保证 Web服务器的安全。当 然 Web服务器要安全又必须是先保证系统安全,这样就扯远了, 无穷无尽。PHP可以和各种 Web 服务器结合,这里也只讨论 Apache。非常建议以 chroot 方式安装启动 Apache,这样…...
2023云计算发展
未来的云计算世界将是一个充满着无限可能和创意的世界。在这个世界中,人们可以通过云计算技术实现更加便捷、安全、高效的日常生活,同时可以探索更加广阔、神奇的世界。 智能家居将成为云计算的新宠。未来,人们可以通过语音、手势、传感器等…...
javaSE学习笔记(六)泛型,异常
五、泛型 泛型的由来:通过Object转型问题引入--为了解决安全隐患 早期的Object类型可以接收任意的对象类型,但是在实际的使用中,会有类型转换异常的问题 泛型作用 提高安全性(将运行期的错误转换到编译期) 省去强转的麻烦,取…...

C/C++轻量级并发TCP服务器框架Zinx-游戏服务器开发006:基于redis查找玩家姓名+游戏业务实现总结
文章目录 1 Redis的安装与API的使用1.1 安装目录及环境变量1.2 设置远程客户端连接和守护进程1.3 启动redis1.4 Hiredis API的使用1.5 我的动态库和头文件 2 Redis的使用2.1 初始化时候2.2 结束的时候 3 测试4 Makefile5 游戏业务总结 1 Redis的安装与API的使用 1.1 安装目录及…...

数字政府!3DCAT实时云渲染助推上海湾区数字孪生平台
数字孪生,是一种利用物理模型、传感器数据、运行历史等信息,在虚拟空间中构建实体对象或系统的精确映射,从而实现对其全生命周期的仿真、优化和管理的技术。数字孪生可以应用于各个领域,如工业制造、智慧城市、医疗健康、教育培训…...

react之Component存在的2个问题
问题 只要执行setState(),即使不改变状态数据,组件也会重新render()只当前组件重新render(),就会自动重新render子组件 原因 Component中的shouldComponentUpdate()总是返回true 思路 只有当组件的state或props数据发生改变时才重新rend…...

【论文阅读】Generating Radiology Reports via Memory-driven Transformer (EMNLP 2020)
资料链接 论文原文:https://arxiv.org/pdf/2010.16056v2.pdf 代码链接(含数据集):https://github.com/cuhksz-nlp/R2Gen/ 背景与动机 这篇文章的标题是“Generating Radiology Reports via Memory-driven Transformer”…...

IP协议相关技术
文章目录 IP协议相关技术仅凭IP无法完成通信DNSARP IP协议相关技术 仅凭IP无法完成通信 人们在上网的时候其实很少直接输入某个具体的IP地址。 在访问Web站点和发送、接收电子邮件时,我们通常会直接输入Web网站的地址或电子邮件地址等那些由应用层提供的地址&…...

Visual Studio2022安装教程【图文详解】(大一小白)编译软件
工欲善其事,必先利其器。想要学好编程,首先要把手中的工具利用好,今天小编教一下大家如何下载安装并使用史上最强大的编译器--Visual Studio🍗 一.Visual Studio下载及安装 https://visualstudio.microsoft.com/ 打开文件 点击.ex…...

matlab 点云最小二乘拟合平面(PCA法)
目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。爬虫网站自重。 一、算法原理 见:matlab 点云最小二乘拟合平面(PCA法详细过程版)。 二、代码实现 clc;clear; %% --------...

socks5代理和https代理有什么不同?各自有哪些优点?
socks5代理和https代理是两种不同的代理服务,它们在实现方式、安全性和协议特点等方面存在差异。下面我们来详细了解一下这两种代理的优点。 一、socks5代理的优点 1. 速度快 socks5代理采用了TCP协议,能够有效地减少网络延迟和数据传输速度慢的问题&…...

springboot,spring框架返回204 status code的时候,会吞掉返回值
背景 发现有个有意思的现象,就是当你的接口返回204的 HTTP status code 的时候,会自动把 response body 吃掉,即使代码里是有返回的。例如 (其实204本身就是NO_CONTENT的意思,不过我是真没想到真干掉了返回࿰…...

6-爬虫-scrapy解析数据(使用css选择器解析数据、xpath 解析数据)、 配置文件
1 scrapy解析数据 1.1 使用css选择器解析数据 1.2 xpath 解析数据 2 配置文件 3 整站爬取博客–》爬取详情–》数据传递 scrapy 爬虫框架补充 # 1 打码平台---》破解验证码-数字字母:ddddocr-计算题,滑块,成语。。。-云打码,超…...

idea 一直卡在maven正在解析maven依赖
修改maven Importing的jvm参数 -Xms1024m -Xmx2048m...

警告:未配置spring boot 配置注解处理器
前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 问题 我再使用ConfigurationProperties(prefix “redisson”)去加载配置文件中的属性的时候,发现idea有个警告 并且配…...
详解虚拟DOM的原理
Virtual DOM(虚拟DOM)是一种编程概念,它是对真实DOM的轻量级抽象表示。在前端开发中,直接操作真实DOM是昂贵的,尤其是当涉及到大量的DOM更新时。Virtual DOM的出现,为优化和提高Web应用的性能提供了一个有效…...

开设自己的网站系类03安装数据库(centos版)
编者买了一个服务器打算自己构建一个网站,用于记录生活。网站大概算是一个个人博客吧。记录创建过程的一些步骤。 前面已经讲过配置服务器的程序运行环境 网站运行还需要数据库,本篇文章则是安装数据库的内容。 卸载mariadb 查看是否有安装 mariadb&…...

Flutter StreamBuilder 实现局部刷新 Widget
Stream 就是事件流或者管道,是基于事件流驱动设计代码,然后监听订阅事件,并针对事件变换处理响应。 Stream 分单订阅流和广播流,单订阅流在发送完成事件之前只允许设置一个监听器,并且只有在流上设置监听器后才开始产生事件&…...

【代码随想录】算法训练营 第十六天 第六章 二叉树 Part 3
104. 二叉树的最大深度 题目 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例: 输入:root [3,9,20,null,null,15,7] 输出:3 思路 用递归来做,…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

Redis上篇--知识点总结
Redis上篇–解析 本文大部分知识整理自网上,在正文结束后都会附上参考地址。如果想要深入或者详细学习可以通过文末链接跳转学习。 1. 基本介绍 Redis 是一个开源的、高性能的 内存键值数据库,Redis 的键值对中的 key 就是字符串对象,而 val…...
【Java】Ajax 技术详解
文章目录 1. Filter 过滤器1.1 Filter 概述1.2 Filter 快速入门开发步骤:1.3 Filter 执行流程1.4 Filter 拦截路径配置1.5 过滤器链2. Listener 监听器2.1 Listener 概述2.2 ServletContextListener3. Ajax 技术3.1 Ajax 概述3.2 Ajax 快速入门服务端实现:客户端实现:4. Axi…...

Linux 内存管理调试分析:ftrace、perf、crash 的系统化使用
Linux 内存管理调试分析:ftrace、perf、crash 的系统化使用 Linux 内核内存管理是构成整个内核性能和系统稳定性的基础,但这一子系统结构复杂,常常有设置失败、性能展示不良、OOM 杀进程等问题。要分析这些问题,需要一套工具化、…...