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

本文涉及的产品
性能测试 PTS,5000VUM额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 大家好我是路飞,今天这篇文章和大家聊聊企业级网关中间件开发者,对API管理方面的需求,以及如何选择一款高效且功能强大的API管理工具。

大家好我是路飞,今天这篇文章和大家聊聊企业级网关中间件开发者,对API管理方面的需求,以及如何选择一款高效且功能强大的API管理工具,Eolink:https://www.eolink.com/

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

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

最开始我是很憧憬做中间件和基建类产品开发工作的,因为可以更专注于技术视角有技术挑战性,不需要考虑那么多上层业务和CRUD,而且相比业务团队,中间件团队下班时间可能会更早一些。

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

  • 实际上的中间件研发程序员工作现状

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

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

甚至一个网关中间件在API层面做的足够优秀,是可以拿来作为一个重量级RPC框架使用的。

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

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

如果把API比作中介,那么两端的就是房东(服务提供方)和租房客(服务订阅方),房客通过中介去找房东获取优质房源。

三者关系图如下:


那么问题就来了:

问题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 可以完美解决上述问题,让程序员摆脱低技术含量的工作

二、选择 Eolink 的五个理由

1. API文档动态生成

Eolink 支持3种创建API文档的方式:

  • 手动创建API(适合所有团队;
  • 根据代码注解自动生成文档(适合使用过或正在使用Swagger产品来自动生成文档的团队);
  • 根据代码模板快速创建API文档(适合所有团队)。

当我们创建了 API 文档之后,可以随时查看 API 的改动情况、根据 API 文档发起 API 测试、编写 API 测试用例、使用 Mock API等。如下图是在系统中管理的API文档,可以详细的看到API的描述信息、变更历史、测试用例、Mock API等内容。

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

  • API 状态:可以方便成员查看API当前所处的状态,并且进行状态流转的通知;
  • Tag 标签:可以作为API的备注或者是筛选条件;
  • 负责人:当API文档内容发生变化时,负责人会自动收到API变更通知。


此外 Eolink 还支持API文档的动态管理,可以按照不同项目、应用区分不同的API文档集(文档分组),支持文档的导入、复制、到处等操作:

2. API集成测试

2.1 API测试用例

Eolink同时支持多种协议的接口请求测试。这个我认为是目前用过的API测试工具中做的最好的,支持多协议请求,非常适合网关中间件程序员日常测试需求,市面上大多数API测试工具对gRpc/Rpc的支持都做得不是太好。

  • HTTP/HTTPS API测试:

进入某个HTTP协议的API文档详情页,点击文档上方 测试 标签,即可进入 API 测试页,系统会根据API文档的定义的参数自动生成测试界面并且填充测试数据。

  • WS/WSS API测试:

进入某个WS协议的API文档详情页,点击文档上方 测试 标签,即可进入 API 测试页,系统会根据API文档的定义的求头部、Query参数、请求体自动生成测试界面并且填充测试数据。

  • TCP/UDP测试:

进入某个TCP/UDP协议的API文档详情页,点击文档上方 测试 标签,即可进入 API 测试页,系统会根据API文档的定义的求头部、Query参数、请求体自动生成测试界面并且填充测试数据。

  • RPC/gRPC测试:

以gRPC接口为例,进入某个gRPC协议的API文档详情页,点击文档上方 测试 标签,即可进入 API 测试页,系统会根据API文档的定义的proto、请求体自动生成测试界面并且填充测试数据。

2.2 支持登录态接口测试

Eolink可以在客户都模拟登录授权,我们在测试强授权校验接口时,不需要一个一个接口去配置cookie、token或者headerCrsf跨域配置。

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

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

对于需要动态加密和验签的接口(例如根据请求报文和密钥key动态生成加密签名),这种场景下,我们之前的做法很笨拙:就是一个一个接口通过执行加密工具类把报文和密钥key生成对应的加密签名~

而使用Eolink就可以直接在前置脚本中完成加密签名的操作~

  • 前置脚本:在API请求前执行javascript脚本,改变请求参数、进行签名加密等操作
  • 后置脚本:在API请求后执行javascript脚本,改变返回结果、进行解密等操作

3. 支持MOCK服务

在瀑布流开发模式中,如果前端开发人员需要进行页面对接,需要后端先完成API的开发工作,因此前后端开发的进度会互相影响。通过Mock API,我们可以事先编写好API的数据生成规则,由系统动态生成API的返回数据。开发人员通过访问Mock API来获得页面所需要的数据,完成对接工作。

Mock API支持根据不同的请求参数返回不同的HTTP Status Code、Header、Body等数据。我们可以在一个API文档里创建多个Mock API,模拟前端发起的各种请求,方便对前端逻辑进行校验。

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

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

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

4. API 网关

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

Eolink提供的微服务网关产品能够实现高性能 HTTP API 转发、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行 API 服务治理、提高 API 服务的稳定性和安全性。

接入流程示例:


其实我觉得,企业级网关中间件的解决方案,大家都是互相借鉴的,性能高低除了设计架构之外,很大程度也和服务器性能有关(吞吐量),如果只作为使用者角度来看,Eolink 提供的API网关解决方案产品体验度是比较高的。

具体接入流程参考文档:https://help.eolink.com/#/tutorial/?productID=14

5. API流量监控

我觉得这个功能是非常实用的,甚至省下开发者单独去搭建一套性能监控大盘了,直接拿来使用就好了~

文档地址:https://help.eolink.com/?status=link-jump#/tutorial/?groupID=c-958&productID=32

5.1 创建监控API

Eolinker API 网络监控平台支持从 Eolinker API Management(API管理产品)中导入API信息,或者手动创建监控API。

进入API监控页面,点击 新建API 按钮,会直接进入API监控编辑页面。你可以在编辑页中设置API监控的名称、请求地址、请求信息、校验规则等信息。

5.2 开启API监控

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

5.3 API实时分析报告

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

进入 API 的监控详情页,选择时间段为实时,此时页面会显示该 API 最新一次的监控报告,可以看到API最新一次请求的各阶段时间分析:

5.4 API监控日志

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

三、Eolink下载安装

根据自己电脑系统选择对应客户端安装即可~


下载完成登录之后就进入API管理页面啦:

跑一个API体验一波~


API统计看板:

四、总结

通过这个产品,也改变了我对国产研发提效产品的认识,希望类似的产品越来越多。

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

更多详情查看Eolink官网地址:https://www.eolink.com/?utm_source=kol&utm_medium=csdn&utm_content=w4602

相关文章
|
1月前
|
人工智能 监控 负载均衡
一文详述:AI 网关与 API 网关到底有什么区别?
近年来,AI发展迅猛,大模型成为推动业务创新的关键力量。企业面临如何安全管理和部署AI应用的挑战,需设计既能满足当前需求又可适应未来发展的基础架构。AI网关应运而生,在集成、管理和优化AI应用中扮演重要角色。本文探讨AI网关与API网关的区别,分析AI系统为何需要专门网关,并提供选择合适AI网关的建议。AI网关不仅支持多种模型,还具备高级安全性和性能优化功能,有助于企业在复杂环境中灵活应用AI技术。
82 1
|
3月前
|
JSON 数据挖掘 API
各大电商平台的商品详情数据接口(API接口系列)
各大电商平台的商品详情数据接口(API接口系列)是开发者在构建电商应用或进行数据分析时的重要工具。这些接口允许开发者通过编程方式获取商品的详细信息,如商品ID、标题、价格、库存、属性、描述、图片等。以下是对淘宝、京东、拼多多等电商平台商品详情数据接口的汇总,以及开发者在使用这些接口时需要注意的事项。
各大电商平台的商品详情数据接口(API接口系列)
|
3月前
|
编译器 API Android开发
Android经典实战之Kotlin Multiplatform 中,如何处理不同平台的 API 调用
本文介绍Kotlin Multiplatform (KMP) 中使用 `expect` 和 `actual` 关键字处理多平台API调用的方法。通过共通代码集定义预期API,各平台提供具体实现,编译器确保正确匹配,支持依赖注入、枚举类处理等,实现跨平台代码重用与原生性能。附带示例展示如何定义跨平台函数与类。
102 0
|
1月前
|
API
阿里云短信平台API错误码提示错误天级流控显示小时级错误码
阿里云短信平台API错误码提示错误天级流控显示小时级错误码
|
2月前
|
缓存 测试技术 API
电商平台 API 接入技术要点深度剖析
本文介绍了高效使用电商平台API的关键步骤。首先,深入理解API文档,明确功能权限与参数格式要求;其次,选择合适的接入方式,如HTTP/HTTPS协议和RESTful API;接着,实施身份验证与授权机制,确保数据安全传输;此外,还需关注性能优化、安全防护、监控与日志记录,以提升系统稳定性和响应速度;最后,进行充分测试与调试,并关注API版本更新,确保长期兼容性。
|
2月前
|
JSON 供应链 数据挖掘
抖音商品sku数据接口(Dy.item_sku)丨抖音平台API数据接口指南
抖音商品详情SKU数据接口(Dy.item_sku)由抖音开放平台提供,用于获取商品详细信息,包括名称、价格、图片等。开发者需注册并获取权限,遵循API限制,通过商品ID调用接口,解析JSON格式返回数据。该接口广泛应用于商品展示、库存管理、订单处理及数据分析,助力提升工作效率和用户体验。使用时需遵守平台规则,确保数据安全。
|
3月前
|
人工智能 Cloud Native 安全
统一多层网关好处多,阿里云云原生 API 网关打造全能型网关
本文分享了作为一款全能型网关【云原生 API 网关】是如何帮助企业落地统一网关架构的。
7965 11
|
3月前
|
运维 安全 Cloud Native
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
核心系统转型问题之分布式数据库和数据访问中间件协作如何解决
|
4月前
|
人工智能 API
阿里云微服务引擎及 API 网关 2024 年 6 月产品动态
阿里云微服务引擎及 API 网关 2024 年 6 月产品动态
158 22
|
3月前
|
Java API 数据中心
百炼平台Java 集成API上传文档到数据中心并添加索引
本文主要演示阿里云百炼产品,如何通过API实现数据中心文档的上传和索引的添加。