管理平台接口文档,优化业务流程的灵魂之匙
492
2023-01-17
本文目录一览:
【快乐摸鱼】是一款基于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服务器,你可以简单的把这个服务器当作后端的服务器。
非常遗憾,目前还不支持这个功能,不过我们已经开始开发这个非常重要的功能了。
客户端技术栈
服务端技术栈
目前开源类的接口工具大都只提供使用以及部署文档,二次开发对于用户来说会比较困难。为了延长项目寿命,同时也为了吸引更多开发者参与,我们把完善 开发文档 和 产品设计思路 作为了最重要的开发任务之一。由于项目本身的复杂性,完善的开发文档将会占据大量的开放时间,文档会有一定的滞后性。
产品设计思路
开发文档
部署文档
我们希望给正在寻找接口管理工具的用户多提供一种选择,同时也不断完善产品设计和开发文档,希望吸引更多的人参与到项目中来。
作为一个前后端分离模式开发的团队,我们经常会看到这样的场景:前端开发和后端开发在一起热烈的讨论“你这接口参数怎么又变了?”,“接口怎么又不通了?”,“稍等,我调试下”,“你再试试..."。
那能不能写好接口文档,大家都按文档来开发?很难,因为写文档、维护文档比较麻烦,而且费时,还会经常出现 API 更新了,但文档还是旧的,各种同步不一致的情况,从而耽搁彼此的时间。
之前我们团队也遇到了同样的问题,那么作为研发团队的负责人,我是如何带领团队解决这个问题的呢?
方法其实很简单,如果能做到让写文档/维护文档这件事情的短期收益就能远高于付出的成本,那么所有问题都能迎刃而解,开发人员就会非常乐意去写接口文档。
要做到写文档和及时维护文档的短期收益就能远高于付出的成本,无非两个方向:
鉴于此,我们设想如果有一款工具做到以下这些是不是就非常爽了?
总结下来,我们需要的就是这么一款工具:
为此,我们几乎尝遍了市面上所有相关的工具,但是很遗憾,没有找到合适的。
于是,我们自己实现了一个Postman + Swagger + RAP + JMeter
这个工具就是 Apifox,经常很长一段时间不断更新迭代后,我们基本上完全实现了最初的设想,几乎完美解决了最开始遇到的所有问题,在公司内部大受欢迎。并且也形成了我们自己的最佳实践。
没错,现在我们已经将Apifox产品化对外服务了,你们团队也可以直接使用Apifox了。
官网:www.apifox.cn
Apifox = Postman + Swagger + Mock + JMeter
Apifox 是 API 文档、API 调试、API Mock、API 自动化测试一体化协作平台。
通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好接口文档,接口调试、数据 Mock、接口测试就可以直接使用,无需再次定义;接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。高效、及时、准确!
节省研发团队的每一分钟!
如果你认为 Apifox 只做了数据打通,来提升研发团队的效率,那就错了。Apifox 还做了非常多的创新,来提升开发人员的效率。
通常一个接口会有多种情况用例,比如 正确用例 参数错误用例 数据为空用例 不同数据状态用例。定义接口的时候定义好这些不同状态的用例,接口调试的时候直接运行,非常高效。
可以独立定义数据模型,接口定义时可以直接引用数据模型,数据模型之间也可以相互引用。同样的数据结构,只需要定义一次即可多处使用;修改的时候只需要修改一处,多处实时更新,避免不一致。
使用 Apifox 调试接口的时候,系统会根据接口文档里的定义,自动校验返回的数据结构是否正确,无需通过肉眼识别,也无需手动写断言脚本检测,非常高效!
Apifox 自动校验数据结构
设置断言:
Apifox 设置断言
运行后,查看断言结果:
先放一张图对比下 Apifox 和其他同类工具 零配置 mock 出来的数据效果:
Apifox Mock 数据结果对比同类工具
可以看出 Apifox 零配置 Mock 出来的数据和真实情况是非常接近的,前端开发可以直接使用,而无需再手动写 mock 规则。
「Apifox 如何做到高效率、零配置生成非常人性化的 mock 数据」
Apifox 项目可“在线分享” API 文档,分享出去的 API 文档可设置为公开或需要密码访问,非常方便与外部团队协作。
体验地址:https://www.apipark.cn/s/ce387612-cfdb-478a-b604-b96d1dbc511b/http/5041285
根据接口模型定义,自动生成各种语言/框架(如 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 等)的业务代码(如 Model、Controller、单元测试代码等)和接口请求代码。目前 Apifox 支持 130 种语言及框架的代码自动生成。
更重要的是:你可以通过自定义代码模板来生成符合自己团队的架构规范的代码,满足各种个性化的需求。
接口调试
Apifox 多种主题色可选
前后端分离是现在主流的架构设计模式,它初衷是用「单一职责」原则把代码质量提上去从而达到节省人力和减少沟通时的信息损失的目的。
本文推荐九个前后端分离的开源项目,都是采用最流行的技术栈。本文推荐的开源项目已经收录到 Awesome GitHub Repo。
Awesome GitHub Repo 是逛逛 GitHub 创建的开源项目,会收集整理 GitHub 上高质量、有趣的开源项目,并将他们进行归类。
该开源项目集不是简单的按照编程语言来分类,而是按照更有趣的分类方式,比如:有趣项目、沙雕项目、实战项目、学习项目、实用工具等等。
本期推荐的开源项目是:
1. 前后端分离博客系统
2. 前后端分离考试系统
3. 基于 TypeScript 的聊天室项目
4. 人力资源管理开源项目
5. 一个可以用来练手的前后端分离项目
6. 学之思开源考试系统
7. 前后端分离的后台管理系统
8. 前后端管理平台一站式脚手架
9. 一个系列项目:NiceFish(美人鱼)
01 前后端分离博客系统
这是一款基于 Spring Boot = Vue 的前后端分离的博客系统,后端采用技术栈:Spring Boot、Spring Security、jjwt、MyBatis、PageHelper、Redis、commonmark-java、ip2region、quartz、yauaa。
前端核心框架:Vue2.x、Vue Router、Vuex;Vue 项目基于 @vue/cli4.x 构建。JS 依赖及参考的 CSS:axios、moment、nprogress、v-viewer、prismjs、APlayer、MetingJS、lodash、mavonEditor、echarts、tocbot、iCSS
02 前后端分离考试系统
该项目是一个前后端分离的在线考试系统。后端使用 Spring Boot,前端使用 VUE 和 Element-UI 组件库配合完成开发。
03 基于 TypeScript 的聊天室项目
该项目是一个聊天室,采用全 TypeScript 开发,目前聊天室已经具备完整的聊天功能,有兴趣的朋友可以自行 fork 去开发。
技术选型:Typescript、Vue2.6.x、Socket/io、Vuex、Nestjs、Typeorm、ES6+、SASS(SCSS)。
04 人力资源管理系统
微人事是一个前后端分离的人力资源管理系统,项目采用 Spring Boot + Vue 开发。首先,不同的用户在登录成功之后,根据不同的角色,会看到不同的系统菜单,完整菜单如下:
每个用户的角色是由系统管理员进行分配的,系统管理员给用户分配角色的页面如下:
系统管理员也可以管理不同角色可以操作的资源,页面如下:
后端技术栈:Spring Boot、Spring Security、MyBatis、MySQL、Redis、RabbitMQ、Spring Cache、WebSocket
前端技术栈:Vue、ElementUI、axios、vue-router、Vuex、WebSocket、vue-cli4
05 前后端分离练手项目
一个基于 Spring Boot + Vue 开发的前后端分离博客项目,带有超级详细开发文档和讲解视频。还未接触过 Vue 开发或者前后端分离的同学可以学起来。
06 开源考试系统
学之思开源考试系统是一款 Java + Vue 的前后端分离的考试系统。主要优点是开发、部署简单快捷、界面设计友好、代码结构清晰。
支持 Web 端和微信小程序,能覆盖到 PC 机和手机等设备。支持多种部署方式:集成部署、前后端分离部署、Docker 部署。
07 后台管理系统
一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue 的前后端分离的后台管理系统。
项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由。
体验地址:https://el-admin.xin
账号密码:admin / 123456
08 前后端管理平台一站式脚手架
本项目基于Spring Cloud 和Ant Design Pro实现前后端管理平台一站式脚手架,便于快速开发企业级应用。我们的愿景是 基于CopyPaste技术,实现面向GoogleBaidu编程,让码农搬砖不累,做更好的良民。
预览地址:https://admin.awesome-coder.com;用户名和密码:admin
浏览器输入 localhost:8000 后会自动跳转到登录页
输入用户名和密码 admin/admin后,跳转到首页
Cookie中JWT Token
监控服务 localhost:8001效果(如果启动了monitor服务,用户名和密码为admin/admin)
移动端效果
09 美人鱼
NiceFish(美人鱼) 是一个系列项目,目标是示范前后端分离的开发模式:前端浏览器、移动端、Electron 环境中的各种开发模式;后端有两个版本:SpringBoot 版本和 SpringCloud 版本。
历史 推荐的开源项目已经收录到 GitHub 项目,欢迎 Star:
关于前后端分离接口管理工具和接口实现分离的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 前后端分离接口管理工具的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于接口实现分离、前后端分离接口管理工具的信息别忘了在本站进行查找喔。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~