java 单机接口限流处理方案
307
2023-01-21
本文目录一览:
【快乐摸鱼】是一款基于Vue和Electron的开源接口管理工具。
GitHub地址
Gitee地址
完整文档
在线体验
最初构建这个项目的时候是为了学习Node.js和解决团队前后端协调问题。社区中有 YApi 、Rap2、Doclever、 Nei、Swagger、Apidoc等开源解决方案,同时也存在 Postman、Eolinker、ApiPost等商业解决方案。
在这之前团队尝试了YApi和Rap2等社区方案,他们能够满足一些基本的需求,但是在深入使用以后,还是出现了一些影响效率的问题。当时使用这两个工具最大的问题就是接口无法支持多级嵌套,某些项目接口多了以后会导致检索效率大大降低。于是尝试从头开始写一款接口管理工具。
非常核心的一个功能,在前后端分离情况下,一套简洁的团队管理策略会大大提高分工效率。我们将权限分为 只读、读写、管理员三类。
上面的三种角色可以满足大部分日常使用需求。在一些特殊情况下你可能需要更加细粒度的权限控制,比如:拥有读写权限的用户你只希望他能编辑文档,但不希望他能导出全部文档。我们提供了自定义角色功能,可以精确到每一个接口和路由(一般情况下用不到)。
非常核心的一个功能,设计一个方便并且易使用的目录导航能够大大增强录入体验。我们从其他开源项目issue中总结了一些常见需求。
工具实现了上面的全部功能,同时也扩展了一些实用的功能。
标签导航是为了方便开发人员在多个接口之间快速切换,开源的产品这块做的并不是很完善,我们在实践中总结了这些需求。
大部分商用的接口工具都具备导航标签功能,但是开源产品这块大都不具备标签导航功能或者功能完成度不高
大部分的接口工具都会内置接口调试功能,这样开发人员只需要使用一个工具就能完成接口调试和接口录入。不过由于浏览器本身的限制(同源策略),直接在web端发起HTTP请求大概率会失败。这里列举了一些常见的解决方案。
从技术上来说,使用客户端来规避同源策略是一种比较好的实践,同时依托客户端强大的api还能完成很多web端无法完成的事情,当然安装客户端也会给用户带来一些不方便。目前主流的商业项目大都采用客户端的形式来为用户提供接口调试功能,部分工具甚至不提供web端的使用。我们采用了客户端的方式来实现接口调试,同时也保留了web端的使用功能,除了接口调试和Mock功能无法使用外,web端和客户端在功能上没有其他区别。我们也会在未来提供浏览器插件功能,这样用户就可以在web端使用接口调试功能了
我们总结一些常见的接口调试需求
对接口的增删改查是整个接口工具最核心的部分,常见的开源产品对 请求参数(Body),多个返回参数方面支持比较弱。我们总结了在典型业务场景下,接口录入应该包含以下核心模块。
【接口录入工作区】
除了完善必要的接口模块,工具还在录入效率方面想了很多办法。我们从Yapi、Rap2等开源项目issue中整理用户常见的录入需求。
目前市面上接口工具总类繁多,在处理导入的时候会有以下几个主要问题。
目前比较稳定和被普遍认可的规范是 OpenAPI 规范,很多商业化的工具都是支持这种规范的。postman这类工具拥有非常大的市场占有率,大部分工具也都支持这种类型数据导入。我们收集了一些常用的接口工具,并且列出了工具对导入的支持情况。
在常规导入需求上面,我们扩展了一些功能,提高了部分项目内迁移效率。
导出功能一方面是方便用户分享文档给第三方用户,另一方面也提供了一定的迁移和备份能力。下面是一些常见的导出场景
日志功能是团队管理和安全操作中非常重要的一环,工具对接口的每一步操作都做详细记录。
除了基本的记录以外,工具也提供非常丰富的检索。在某些操作上面用户可能希望获取更加详细的日志信息,例如:对于编辑文档,用户可能更希望知道具体改变了哪些内容。工具目前在这方面的支持度有限,未来会继续完善这块内容。
工具区分 接口录入 和 接口预览 两个状态,接口录入的目的是达到高效录入,接口预览的目的是达到高效检索。和其他工具导出数据不同,工具在检索和预览方面做了一些优化。
在实际项目开发的时候,联调人员更关心某某人修改的最近几条数据,通过过滤条件能够非常高效的进行数据检索。
相对于表格形式的json展示,下面这种呈现形式对开发人员来说是非常友好的。
可以使用Mock功能来进行快速开发,和大部分接口工具一样我们支持 Mock.js 语法,同时我们简化了整个mock过程你无需做任何额外的配置。工具会在本地启动一个Mock服务器,你可以简单的把这个服务器当作后端的服务器。
非常遗憾,目前还不支持这个功能,不过我们已经开始开发这个非常重要的功能了。
客户端技术栈
服务端技术栈
目前开源类的接口工具大都只提供使用以及部署文档,二次开发对于用户来说会比较困难。为了延长项目寿命,同时也为了吸引更多开发者参与,我们把完善 开发文档 和 产品设计思路 作为了最重要的开发任务之一。由于项目本身的复杂性,完善的开发文档将会占据大量的开放时间,文档会有一定的滞后性。
产品设计思路
开发文档
部署文档
我们希望给正在寻找接口管理工具的用户多提供一种选择,同时也不断完善产品设计和开发文档,希望吸引更多的人参与到项目中来。
APIJSON是鹅厂开源出来的零代码、全功能、强安全的ORM库,是一种专为 API 而生的 JSON 网络传输协议以及基于这套协议实现的库。为各种增删改查提供了 完全自动化的万能通用接口 , 零代码 实时满足千变万化的各种新增和变更需求。
能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。适合中小型前后端分离的项目,尤其是 初创项目、内部项目、低代码/零代码、小程序、BaaS、Serverless 等。
其社区非常活跃,生态完善,早已形成了 .net,python,php,go 等多语言的版本,你能遇到的问题都能在这里解决。
数据库:MySql5.7;
数据库管理工具:Navicat;
开发IDE:IntelliJ IDEA
1.下载后端源码
2.初始化数据库
运行Navicate,新建sys模式(如果存在则不用新建),运行sql文件( sql文件位置:根目录MySQLsys.sql )初始化数据表,执行成功后刷新会看到初始化后的数据表。
3.使用IntelliJ IDEA打开项目
打开 IntelliJ IDEA工具, File-Open ,选择” 解压根目录/D:MSourceAPIJSON-Demo-masterAPIJSON-Java-Server “文件夹下面的 APIJSONBoot项目,导入源码。
IDE工具会自动从加载所需的库文件。
打开 DemoSQLConfig类,编辑 getDBUri,getDBAccount,getDBPassword,getSchema 的返回值为你自己数据库的配置。
DemoSQLConfig.java
APIJSONDemo/APIJSONBoot: 右键 DemoApplication Run DemoApplication.main
APIJSONFinal: 右键 DemoAppConfig Run DemoAppConfig.main
在浏览器输入 http://localhost:8080/get/{},如果出现以下代码段说明运行成功。
语法学习请参考官方文档:https://github.com/Tencent/APIJSON/blob/master/%E8%AF%A6%E7%BB%86%E7%9A%84%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3.md
使用 Apache License 2.0,对 公司、团队、个人 等 商用、非商用 都自由免费且非常友好,请放心使用和登记。
我们在项目开发完成,接口写好后,需要将接口文档给到前端同学,或者合作方的工程师。但 swagger 对接口阅读并不友好,大部分情况下还得把服务启动好才能访问。这篇文章给各位开发人员介绍如何使用 docway 将 swagger 导出 PDF 或者 markdown 。
打开 swagger ui 的页面
点击 swagger json 的链接(可能没有显示该链接)
请点击输入图片描述
如果你的 swagger 页面没有显示该链接,F12打开开发者工具,重新刷新后,复制 api-docs 的响应内容。
请点击输入图片描述
在弹出的tab页中或者 api-docs 的内容,复制下来或者保存到本地文件中
第二步:将 swagger json 导入 docway
登录 http://docway.net
在控制台中,新增项目,选择 导入
选择 swagger 导入,并根据自己的 swagger json 选择是“上传文件方式”还是“粘贴json方式”
请点击输入图片描述
导入后,便可以看到项目信息了
第三步:导出 PDF markdown
在项目的“更多设置”中,找到“项目导出”功能。可以选择 PDF Markdown 导出。
docway 是一款在线接口文档管理工具,除了 PDF markdown 导出, 还支持接口设计、接口分享、接口mock、接口历史记录、接口版本管理、团队管理等功能。
关于json接口管理工具和JSON工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 json接口管理工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于JSON工具、json接口管理工具的信息别忘了在本站进行查找喔。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~