searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

一种模块化可编程的API编排方法

2023-05-15 08:44:31
36
0

1、背景

在当今的互联网应用中,API已经成为大多数系统间交互的标准接口,API网关是其中管控API的一个核心服务。为了提高API的利用率,对API的重新组合和利用的需求应运而生,称之为API编排。如何提高编排的效率、灵活性,是其中的关键点。

2、存在的问题

对于传统的API网关来说,由用户发起请求,请求转发至目标服务器后,获得响应数据,再将数据响应回用户,完成一次API请求。如果用户请求需要的数据来源于多个API,那么有2个解决方案:一是用户自行请求并完成数据的聚合,在使用上不够灵活;或者由服务提供方提供聚合的API,功能存在冗余。所以如果API网关可以进行API编排,聚合多个API为一个API,则灵活性和API复用能力大幅提高。当前也有一些API网关提供可视化API编排的功能,对API进行流程订制、条件分支判断、响应数据聚合等操作,然而再复杂一点的API编排需求就无法完成或者使用起来非常繁琐了,比方说循环、数据加签、跨域资源访问等。

可视化API编排主要是通过结构化数据将API处理流程保存起来,逐一执行,最后将结果聚合后响应到用户。这种做法易于管理,能轻易实现大部分的需求,但是就灵活性来说,无论如何是无法与脚本语言相比的。

3、解决方案

本方案提出一种将脚本语言引擎集成到API网关中的方法,让用户可以使用脚本语言对API进行编排,大幅增加了API编排的灵活性和API的复用能力,同时基于功能模块化机制对API网关的扩展能力大幅增强。

在模块化可编程式API编排引擎中,一切功能都进行了模块化,这是与其它可编程式API编排的区别,包括函数计算模块、API调用模块、外部API调用模块、数据加签模块、IP访问控制模块、跨域资源访问模块等。

用户提交的请求经过这些模块的处理,再将这些模块通过数据上下文组织起来,递交到内嵌的脚本语言引擎执行,完成API请求。

由于功能的模块化,使得功能的复用程度非常高,对编排没有太大需求的用户可以通过直接调用模块完成简单的任务,对编排有需求的用户可以通过脚本语言引擎完成复杂的任务,兼顾了灵活性与易用性。

0条评论
0 / 1000