咱们好我是路飞,今日这篇文章和咱们聊聊企业级网关中间件开发者,对API办理方面的需求,以及怎样挑选一款高效且功用强壮的API办理东西 Eolink: www.eolink.com/ 。

一、你们眼中的中间件程序员是什么姿态的?

一转眼已经是出来实习/正式作业第二个年初了,这期间在事务团队待过一年也在鸡架中间件团队待过一年。

最开始我是很憧憬做中间件和基建类产品开发作业的,由于能够更专心于技能视角有技能挑战性,不需求考虑那么多上层事务和CRUD,而且比较事务团队,中间件团队下班时刻或许会更早一些。

依照我一个师兄的话说:“中间件团队,便是应该上班只专心代码,到点按时下班。没出大问题之前,让公司其他团队都感觉不到有这个安排存在,而假如一旦出现问题,能够第一个顶上去做技能支撑并把损失降低到最小”。

  • ==实践上的中间件研制程序员作业现状==:

客服小二、答疑群小助手、中间件接入QuickStart文档优化工程师……(有一定自嘲成分哈哈)

咱们就以企业级网关中间件产品为例,一个高功用的网关中间件,“API是一等公民”。流量适配、流控战略、路由编排、协议转换、异步调度、权限认证、流量监控、网关日志、数据安全合规等等都是直接和API挂钩的,所以无论是事务网关中间件仍是技能网关中间件,对API的保护办理都是要重点重视的,也是日常运营保护最花时刻地方。

甚至一个网关中间件在API层面做的足够优异,是能够拿来作为一个重量级RPC结构运用的。

  • 为什么说网关中间件重度依靠API办理和运营?

个人以为,API便是流量来源,从恳求入口到协议转换、适配,再到恳求透传,整个过程中API都是参加的。

假如把API比作中介,那么两头的便是房东(服务供给方)和租房客(服务订阅方),房客经过中介去找房东获取优质房源。

三者关系图如下:

网关中间件研发首选一站式API协作平台:Eolink
那么问题就来了:

问题1:怎样处理好一个API和多个服务订阅方/供给方之间的联调关系?以及接口文档编撰?

这也是日常开发运维作业中最头疼的问题,由于网关中间件的特殊性,针对一个API需求一起帮忙多个用户联调接入,咱们每天都要花很多的人日投入在这上面,==中间件程序员被迫变成了答疑客服==。

订阅方A:喂,帮忙看下,这个API接入调用失利了,是不是你们中间件出问题了?
我:...
供给方B:喂,帮忙看下,这个API服务供给被限流了,是不是你们中间件这边搞的鬼?
我:...
订阅方C:喂,这个API报文格式怎样配啊,给一个API文档和测验用例啊!
我:...
供给方D:喂,这个API改动了,报文格式转换有问题了,费事搞一份API文档发过来啊!
我:...
订阅放E:喂,你们的网关API接入太杂乱了,SDK源码看不懂啊,给一个接口测验用例啊!
我:...
供给方F:喂,帮忙供给一份咱们事务域的一切API接口数据和文档用例把!
我:...

问题2:怎样处理API批量改动导致集成测验脚本、接口文档的批量改动?

当一个API报文字段改动,紧接着就需求改动API文档,以及对应的集成测验脚本,CURL命令都需求改动,尤其是关于一批相互之前强关联的API改动,或许一起需求级联改动多个API的文档内容。

中间件程序员变成了==文档工程师和测验工程师==

关于没作业经验的同学,或许不知道为什么要做集成测验,这里我解释下:

我理解集成测验不只是对某个API或许接口进行功用是否可用测验,还有压力测验(评价QPS),以及全链路测验,模仿线上实在环境的多接口联动流量接入。

那么,为什么API会不断改动呢?Spring Cloud Gateway这种网关中间件,不是直接装备好API接口就能够一向运用吗?

道理很简单,Spring Cloud Gateway 属于纯静态装备的网关中间件,不适用事务杂乱、协议多样、定制化需求高的场景。

问题3:API流量监控计算

做过电商事务的同学应该清楚,每到618、双十一,双十二这种购物狂欢节,咱们的后端服务接口压力就会激增,为了保证服务稳定性和接口高可用,一般都会在狂欢节之前,把一切API、接口的近期流量、压力测验陈述都收拢收拾一下,计算一张Excel表(监控流量需求一个一个去查,逐一计算且功率低)。

咱们会依据往年经验和当时流量收集的梳理成果,去评价出本年狂欢节的QPS峰值上限。

中间件程序员变成了==Excel工程师==

Eolink 能够完美处理上述问题,让程序员脱节低技能含量的作业

网关中间件研发首选一站式API协作平台:Eolink

  • 官网地址:www.eolink.com/
  • 协助文档:help.eolink.com/#/

二、挑选 Eolink 的五个理由

1. API文档动态生成

Eolink 支撑3种创立API文档的方式:

  • 手动创立API(合适一切团队;
  • 依据代码注解主动生成文档(合适运用过或正在运用Swagger产品来主动生成文档的团队);
  • 依据代码模板快速创立API文档(合适一切团队)。

当咱们创立了 API 文档之后,能够随时检查 API 的改动情况、依据 API 文档建议 API 测验、编写 API 测验用例、运用 Mock API等。如下图是在体系中办理的API文档,能够详细的看到API的描绘信息、改动前史、测验用例、Mock API等内容。

网关中间件研发首选一站式API协作平台:Eolink

在API描绘标签页中填写API的恳求路径、API名称、标签、负责人等基本信息。

  • API 状况:能够便利成员检查API当时所处的状况,而且进行状况流转的告诉;
  • Tag 标签:能够作为API的补白或许是筛选条件;
  • 负责人:当API文档内容发生变化时,负责人会主动收到API改动告诉。

网关中间件研发首选一站式API协作平台:Eolink
此外 Eolink 还支撑API文档的动态办理,能够依照不同项目、应用区别不同的API文档集(文档分组),支撑文档的导入、复制、处处等操作:

网关中间件研发首选一站式API协作平台:Eolink

2. API集成测验

2.1 API测验用例

Eolink一起支撑多种协议的接口恳求测验。==这个我以为是目前用过的API测验东西中做的最好的,支撑多协议恳求,十分合适网关中间件程序员日常测验需求,市面上大多数API测验东西对gRpc/Rpc的支撑都做得不是太好。==

  • HTTP/HTTPS API测验:

进入某个HTTP协议的API文档详情页,点击文档上方 测验 标签,即可进入 API 测验页,体系会依据API文档的界说的参数主动生成测验界面而且填充测验数据。

网关中间件研发首选一站式API协作平台:Eolink

  • WS/WSS API测验:

进入某个WS协议的API文档详情页,点击文档上方 测验 标签,即可进入 API 测验页,体系会依据API文档的界说的求头部、Query参数、恳求体主动生成测验界面而且填充测验数据。

网关中间件研发首选一站式API协作平台:Eolink

  • TCP/UDP测验:

进入某个TCP/UDP协议的API文档详情页,点击文档上方 测验 标签,即可进入 API 测验页,体系会依据API文档的界说的求头部、Query参数、恳求体主动生成测验界面而且填充测验数据。

网关中间件研发首选一站式API协作平台:Eolink

  • RPC/gRPC测验:

以gRPC接口为例,进入某个gRPC协议的API文档详情页,点击文档上方 测验 标签,即可进入 API 测验页,体系会依据API文档的界说的proto、恳求体主动生成测验界面而且填充测验数据。

网关中间件研发首选一站式API协作平台:Eolink

2.2 支撑登录态接口测验

Eolink能够在客户都模仿登录授权,咱们在测验强授权校验接口时,不需求一个一个接口去装备cookie、token或许headerCrsf跨域装备。

在API恳求时需求进行的权限校验,如Basic Auth、JWT:

网关中间件研发首选一站式API协作平台:Eolink

2.3 支撑接口前置/后置脚本

关于需求动态加密和验签的接口(例如依据恳求报文和密钥key动态生成加密签名),这种场景下,咱们之前的做法很笨拙:便是一个一个接口经过履行加密东西类把报文和密钥key生成对应的加密签名~

而运用Eolink就能够直接在前置脚本中完结加密签名的操作~

  • 前置脚本:在API恳求前履行javascript脚本,改动恳求参数、进行签名加密等操作
  • 后置脚本:在API恳求后履行javascript脚本,改动返回成果、进行解密等操作

网关中间件研发首选一站式API协作平台:Eolink

3. 支撑MOCK服务

在瀑布流开发模式中,假如前端开发人员需求进行页面对接,需求后端先完结API的开发作业,因而前后端开发的进展会相互影响。经过Mock API,咱们能够事先编写好API的数据生成规则,由体系动态生成API的返回数据。开发人员经过拜访Mock API来取得页面所需求的数据,完结对接作业。

Mock API支撑依据不同的恳求参数返回不同的HTTP Status Code、Header、Body等数据。咱们能够在一个API文档里创立多个Mock API,模仿前端建议的各种恳求,便利对前端逻辑进行校验。

当项目正式发布时,只需将 Mock API 的地址前缀替换为实践的拜访地址即可。

进入API文档详情页面,点击高档Mock 标签,点击添加 Mock。

网关中间件研发首选一站式API协作平台:Eolink

进入Mock API列表页面,点击调用地址即可复制到剪贴板,在代码中直接对该API地址建议恳求即可得到响应成果。

网关中间件研发首选一站式API协作平台:Eolink

4. API 网关

作为一个网关中间件开发者,我以为Eolink的Api网关是业界做的比较好的

  • 依据Golang完结,开源代码库房地址:github.com/eolinker/go…
  • 关于Java研制网关中间件感兴趣的同学,也能够读一读常见开源网关中间件源码:gitee.com/mirrors/spr…

网关中间件研发首选一站式API协作平台:Eolink

Eolink供给的微服务网关产品能够完结高功用 HTTP API 转发、多租户办理、API 拜访权限控制等意图,拥有强壮的自界说插件体系能够自行扩展,而且供给友爱的图形化装备界面,能够快速协助企业进行 API 服务治理、进步 API 服务的稳定性和安全性。

接入流程示例:

网关中间件研发首选一站式API协作平台:Eolink
其实我觉得,企业级网关中间件的处理方案,咱们都是相互借鉴的,功用高低除了规划架构之外,很大程度也和服务器功用有关(吞吐量),假如只作为运用者视点来看,Eolink 供给的API网关处理方案产品体会度是比较高的。

具体接入流程参考文档:help.eolink.com/#/tutorial/…

5. API流量监控

我觉得这个功用是十分有用的,甚至省下开发者单独去搭建一套功用监控大盘了,直接拿来运用就好了~

文档地址:help.eolink.com/?status=lin…

5.1 创立监控API

Eolinker API 网络监控渠道支撑从 Eolinker API Management(API办理产品)中导入API信息,或许手动创立监控API。

进入API监控页面,点击 新建API 按钮,会直接进入API监控修改页面。你能够在修改页中设置API监控的名称、恳求地址、恳求信息、校验规则等信息。

网关中间件研发首选一站式API协作平台:Eolink

5.2 敞开API监控

创立好API之后,在操作栏点击 更多 的按钮,在下拉菜单中挑选 敞开监控。

网关中间件研发首选一站式API协作平台:Eolink

5.3 API实时剖析陈述

看到这个功用我自己都心动了,假如早知道有这个产品,咱们就不需求大费周折自己从0到1研制一套网关体系了…

进入 API 的监控详情页,挑选时刻段为实时,此刻页面会显示该 API 最新一次的监控陈述,能够看到API最新一次恳求的各阶段时刻剖析:

网关中间件研发首选一站式API协作平台:Eolink

网关中间件研发首选一站式API协作平台:Eolink

5.4 API监控日志

这个功用就不展现了,我觉得这个功用比较前面几个功用就没那么亮点了。客观视点看,功用丰富界面交互友爱是值得点赞的。但是API日志最好仍是供给更全面一些为好,当然这个也涉及到本钱哈哈,现在网关日志存储也是很多网关中间件团队最耗费本钱的地方之一。

三、Eolink下载装置

  • 下载地址:www.eolink.com/pc/

网关中间件研发首选一站式API协作平台:Eolink

依据自己电脑体系挑选对应客户端装置即可~

网关中间件研发首选一站式API协作平台:Eolink
下载完结登录之后就进入API办理页面啦:

网关中间件研发首选一站式API协作平台:Eolink

跑一个API体会一波~

网关中间件研发首选一站式API协作平台:Eolink
API计算看板:

网关中间件研发首选一站式API协作平台:Eolink

四、总结

经过这个产品,也改动了我对国产研制提效产品的认识,期望类似的产品越来越多。

另外,也期望每个程序员都能在作业中把更多的精力投入到小而精美的技能开发上,繁琐枯燥的重复性作业交给现有的产品和组件去处理。我以为后端开发不只是CRUD,假如有兴趣也欢迎咱们一起来研讨和学习下相关的网关中间件产品研制和开源版本学习:

  • Eolink依据golang开发的API网关开源项目 github.com/eolinker/go…
  • Java网关开源项目,大名鼎鼎的Gateway(静态装备网关,能够研讨下怎样在这个轮子基础上改造出一款支撑动态装备的运转态网关中间件):gitee.com/mirrors/spr…

更多详情检查Eolink官网地址:www.eolink.com/?utm_source…