暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Eoapi,支持插件扩展的API管理工具,通过插件构建API生态

ITPUB 2023-01-29
339

本篇文章将围绕Eoapi (现Postcat)成立的初衷、想要解决的问题、产品进展与优势、未来规划等进行介绍。


以下为【开源秀】栏目中Eolink CEO 刘昊臻老师的演讲实录:

Eolink 是目前国内最大的 API 的全生命周期的管理平台。我们在线上产品有50W的开发者用户,还包括为 10W +企业提供 API 的全生命周期管理的服务。今天要讲的叫做Eoapi(Postcat),是 ECN open API的缩写。

其实开源产品是脱胎于 Eolink 的商业化产品。我们希望能够用一种比较新的方式,或者换个新的视角去做一个更加贴近于个人开发者,或是更加贴近于小微团队的API 的开发和管理工具。




为何我们要做 Eoapi?

上述已有提及,Eolink 公司在国内服务的客户和开发者,已有很多。过去 Eolink 其实一直都是比较偏向于服务一些企业级客户,比如各类大型互联网公司,或是金融、汽车等各个行业的。

在过去几年中,我们可以看到整个API行业在不断发展。

从最开始大家关注我的API 文档,一些快速的测试等等,怎么做能够很好地解决一些日常工作中的小问题。到现在我们看到很多企业在思考 API 的管理时,我们是以一种全生命周期(All Life Cycle),或是以 API 治理的角度去思考我们公司内部到底有多少服务;对外提供了多少接口;这些接口互相之间是如何调用的;它的版本,它的差异,甚至我希望当它发生变更的时候,能够有一些通知。


STEP1定位:开源+插件生态

基于上述一些需求的转变,因此我们将整个 Eolink 全生命周期搭建起来了。

API行业做了接近 5 年多的时间之后,我们发现其实现在的 API 产品变得越来越臃肿,不够开放,缺乏拓展性,无法满足开发者个性化的需求。因为毕竟我们的产品会更加偏向于中大型客户的这一Eolink 产品、商业化的产品。并且还包括像在国际上也非常知名的PostmanSmart Hub 等一些产品,其实都变得越来越重了。

我们希望能够将过往几年中所积累沉淀的一些经验,作为新的养分去重新设计一款更加贴近于个人开发者,更加符合现在的用户使用习惯,以及更加好拓展的一款 API 的工具。而且它是完全开源和免费的,基于此我们给它起的名字也比较开放一些,ECN open API

上述讲到目前市面上产品,可能相对而言不是那么开放,一方面开源与否它是一方面的原因。另外在于它的功能扩展其实并不是那么方便。比如我们以前或现在在使用的Postman,其实也推出了像插件这样的附加功能,我们可以在上面通过 Postman 连接AWSAzure、阿里云或一些第三方的组件。不过生产这些插件或者要去使用,其成本相对来讲比较高。

我们在思考的是,能否通过一个比较开放的架构解决此事。从开源和从插件生态、插件架构这样的方式,将API 的产品生态,或者让大家一同贡献插件,把生态做起来。我们觉得开源毫无疑问是一个比较好的方式,所以 从 Eoapi 整体的定位来讲,其实就是一个开源以及插件生态的 API 平台。

我们通过把现有的 Eolink 商业化产品进行新的重构,将其中的一些核心功能提取出来,用最新的技术架构,用新的设计将其重新做一遍,所以算是一个全新但是又并非全新的产品理念。上述结合上我们最新的一些插件架构的方式,以保证其中最核心功能的简单和稳定


STEP2基础功能

如果说你是个人开发者或是小微型团队,不需要具有多么复杂的功能,其实最需要的就是能够将代码里的注解,或者将 API 文档快速生成出来,以及接下来能够基于此快速做接口测试。

更进一步讲,如果需要像Mock,需要管理一些测试用例需要一些环境这些功能,我们在 Eoapi 里面其实都是通过类似于插件的方式去拓展它的,因此整个产品的核心架构会变得比较简单。

我们觉得这样的方式会让整个社区,让整个生态都能更加好参与进来。所以我们的目标其实说的比较大一些,便是希望能够成为下一代 API 的平台。

目前Eoapi其实从我们立项、诞生再到202212月也不超过一年的时间,正式上线始于20225 月,现在它已经拥有了一些基本可用的功能。在此简单介绍一下。

首先,作为 API 工具,最基本的一些像 API 的文档、测试,还包括像prescrip,或者需要 test 一些前后置的脚本,则可以通过编写 Javascript 代码对我们的请求参数、返回结果做相应的处理。

可以从其他的一些主流产品里面将已有数据导进来,这是我们现有的一些基本功能。当然,还支持团队协作,且整个都是开源的,可以将其部署在我们的团队内部,或者部署在自己个人的电脑上都是OK的,而且整个 Eoapi 和之前 Eolink 的设计思路差异点在于我们以前主要是以 BS架构为主,它以客户端更加侧重一些。

而现在到了Eoapi,我们会更加偏向于 C/S架构,它会更加以客户端的体验为重,以个人开发者、小微型团队的便捷、效率的方式为重。因此我们选择了通过桌面端的形式做整个产品。


STEP3进阶功能

在基本功能上,目前如果你们有像 api 的一些基本的管理功能,可以上去使用,已经可以满足日常工作中与API相关的可能百分之七八十的一些常见的东西了。在此基础之上,其实也已经做了一些进阶功能,比如像 Mock API,还包括比如环境管理。

可能有些朋友之前不是很清楚 Mock API 到底可以做哪些事情,比如后端开发它,可能一开始在设计接口时,我们的编码其实并不会这么快地完成。

因此希望能够如果有 API 文档的情况下,我们能不能快速地将虚拟接口生成出来,使其先有一个可以调用的地址,在此过程中,前端即可直接用这个地址进行对接,而无需等后端开发完成。这就是 Mock API,虚拟的一个API,根据 API 文档来生成,或者可以自己填一些它的返回结果,我们根据请求地址或是请求参数的不同返回相应的内容。

其次就是像环境管理,如果Postman 用的比较多,会发现其环境管理相对偏弱一点,其中更多的是对于环境变量的一些管理。在 Eolink 里面,其实面对于企业场景,我们发现很多客户希望我们能否在环境里加上一些统一的请求前缀,或是将一些最常见的处理脚本也放进去。在 Eoapi 里面,其实我们也将此功能迁移了过来。

如果想要在测试接口的过程中不断快速地切换不同环境,比如从开发环境、本地的环境或者是测试的环境来回切换。在我们平台,只需要在界面上切换一下菜单的选项即可。这是目前我们所做的一些进阶功能。

下文阐述的重点部分在于插件扩展。我们的插件系统从2022年6 月就开始研发上线了,现在在Eoapi里大概有 10 款插件,且灵活性很高,若感兴趣均可根据我们的教程、文档去做想要的一些插件。

随着扩展点的开放,其实几乎可以扩展任何的一些功能。目前我们开放的一些扩展点主要在于比如一些导入导出,关于文档的一些编辑,以及包括测试功能的强化。该部分有一些可以玩的比较多的花样。比如商业化产品里面,有个功能叫做数据的生成器。我们可以根据请求参数,希望生成一个手机号,或随机生成一串地址或者身份证号码。

诸如此类,其实我们在商业版产品里面都是通过界面的方式,你可以随便点击一下鼠标即可完成。甚至对这些数据希望做数据加解密,也可以用界面的方式完成。在 Eoapi 也可以实现这样的功能,但是与商业版产品不同之处在于:Eoapi 实现方式会更加轻量级,因为商业版其实就是 hard task。

我直接将此功能写在了核心产品中,我在Eoapi里面则可以将其作为一个插件嵌入到我们整个客户端。如果希望用到此功能,则将它启用;反之,则可将其卸载。所以像插件,我们觉得是可以保证产品核心功能稳定而精简,而外延的一些功能又可以非常丰富的一个很好的设计方式。

我们的插件基本上都是纯前端的,基本上有一些基本的前端开发能力,按照教程,可能最快只需 10 分钟左右,即可完成一个插件的开发。2022年,我们已拓宽到 20 款插件。

目前我们也在与国内一些领域里面比较领先的公司合作,比如在数据库分析领域的 Tapdata 之类的,其实也会接入他们的一些产品。接入方式很简单,只需一个插件即可合并两款产品。

比如我们与 OpenDLP。OpenDLP是做参数的安全校验的,比如看下请求,或是返回的数据里到底有否一些比较敏感的字段/数据。而要用这一功能,其实只需开启插件,并且部署好 OpenDLP的服务,即可在请求时帮你判断接口到底是否存在一些异常,并且进行告警。

而像Tapdata 本身是做数据的一些连接池的,比如可以将不同产品的数据通过 Tapdata进行关联,在过程中它也会生产很多的API。如果想要将API 进行统一管理,方便后续的对接或测试怎么办?

在这里也可以通过使用 Tapdata的插件,只需启用即可将 Tapdata 上面的 API 的信息同步导入到我们的 Eoapi 上面。

我们认为Eoapi是一款比较好的产品,就在于它其实与各种产品都能够建立合作关系,或是能够给各种产品添加上 API 管理和测试,或是开发和管理的一些功能。

目前整个产品其实功能上来讲,相比于我们的商业化产品而言还是简单得多。但是其实也设定了它的一些基本的Roadmap。比如从2022 年5 月开始正式上线, 6 月是插件系统,到了 9 月支持了 Mock API 团队协作,在协议上也支持了像Websocket。插件方面我们也增加了更多。

截至2022年年底,发布全新版本的产品体验。而且在插件方面会进行一些重构,并且将数量扩充到 20 款。至2023年会将更多精力放在如何进一步完善插件系统上。

另外,包括在多协议方面上的一些支持,比如目前在开发的圈子里面,大家呼声比较高的如gRPC、socket 这些协议,我们希望在2023年第一季度中能够提供支持,将更多企业版本的一些核心功能迁移到开源产品里。

50 款插件里大部分会包含一些常用功能,我相信有一天会是扩展性非常强的一款产品。因为我们的产品目前处于起步阶段,它还有一些不足。现在是将核心源代码也全部开放,包括在 GitHub 上面进行远程的协作。目前 GitHub 上的 Star 数量大概是有接近 1200 个,欢迎大家接下来能够参与到我们业务 API 的项目中来。


|嘉宾介绍|



刘昊臻

Eolink 创始人兼CEO

Linux & Linux Tars基金会成员

初中开始接触编程与设计,大一开始组建跨校跨国技术团队创业,作为连续创业者,在大三时创办Eolink,目前已成为国内领先的API全生命周期解决方案厂商,为超过50万开发者和10万企业提供企业级API研发管理、自动化测试、微服务网关等产品,并获得英诺天使、水木清华、挑战者资本、红杉、国宏嘉信等机构投资。




如果您想投稿或想要讨论更多,
欢迎在后台输入关键词“投稿”,联系我们。

文章转载自ITPUB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论