大家好,我是人月聊IT。
今天简单给大家介绍下API接口可视化编排平台。我在原来介绍我们API能力开放平台产品的时候谈到过API可视化编排。这个模块本身也是完整解决方面的一个部分。
API能力开放平台整体架构
远行API能力开放平台集API快速开发、API网关管理、OpenAPI能力开放及运营于一体的产品,为企业开发人员提供全程可视化、无代码快速创建API并发布,为平台运维人员提供对接入网关的API进行统一纳管,为API使用人员通过能力对外开放平台安全调用。
平台提供基于对象模型和数据库的API快速开发能力。通过多种数据源适配,配置式进行API的在线发布,支持多种协议转换,包括webservice转REST、http转JMS、REST转http等,支持多种在线开发功能,包括SQL发布API、消息发布API、数据表发布API、数据实体发布API、规范发布API等,支持可视化、拖拽流式开发,无代码完成异构系统集成,降低应用集成开发者使用门槛,提升交付速度。
API接口可视化编排平台
在今年年初,我们正式启动了内部研发立项,将API可视化编排平台剥离出来形成一个独立的产品。所以在这里要先回答清楚两个问题。
其一:为何需要研发为一个独立产品?
核心原因还是企业在整个信息化建设过程中,已经形成了自己的开发框架和模式,也引入了一些ESB产品或API网关产品。企业真正希望解决的还是API如何快速开发,基于复杂场景如何快速对已有的API资产进行组合的问题。API编排平台是具备独立产品推广价值的。
在当前企业数字化转型下,企业强调的是IT如何更好快速敏捷支撑新业务场景。而这里重要的就是要体现SOA面向服务参考架构思想,通过服务层来实现底层能力和上层应用的解耦。
而API编排平台刚好在里面起到关键的承上启下的作用。既可以快速发布API接口,又可以基于已有API快速的组合组装新API满足业务。
其一:从用户角度为何要使用API编排能力?
在这里首先回顾下针对新需求或需求变更,传统API开发方式。
首先要进行需求分析,需求分析过程就是理解业务需求,根据需求定义API接口规范,包括请求方法、请求参数、响应格式以及错误处理机制等。
在API的设计阶段,主要考虑API是否需要实现微服务架构、负载均衡、容错机制,并且设计数据模型,以及在API的安全性方面通过身份认证、授权、数据加密和防止SQL注入等方面进行技术约束。
进入API开发阶段,开发人员主要为达成设计目标进行API服务端代码的编写,并进行API的单元测试和模块间的集成测试。测试完成后接下来就可以进行API的部署和测试,这个过程就是将API部署到服务器上进行压力和安全测试,确保能处理并发请求和高可用。
通过上面这个过程去实施API,带来的时间和成本投入是巨大的。而API快速开发和可视化编排平台刚好可以解决这个问题。通过平台还可以将通用性的工作沉淀成可以复用的能力,这些能力就是可参考的经验库、通用的组件和平台以及可自动化的过程。
大家要注意,对应API编排平台可以理解为面向API的低代码开发平台。强调的是API接口的低代码化或零代码化开发。
虽然我们也做低代码开发平台,但是如果企业要完全引入了一个全新的低代码开发平台,往往对当前遗留的IT系统,当前已有的开发架构,研发管理模式都会带了大的影响。而且我原来也强调对于复杂的业务规则往往也很难通过低代码简单配置实现。
但是从API角度一定是完全可以低代码化的,API编排更多是向上提供各种可复用的原子或组合后的API接口服务。实现底层能力开发和上层应用开发的进一步分离。企业对应上层应用的开发框架和模式完全可用保留。
API接口可视化编排平台的应用场景
API编排支撑的场景广泛且多样,主要可以归纳为以下几个方面:
1. 简单的协议适配和转换
比如DB、缓存、消息中间件、MQTT、Websocket、SFTP等,编排工具基本上能覆盖市面上大部分的协议转换需求,所提供的组件均是在基础适配能力之上再进行一层封装。
对于API编排的实施人员只需关心如何提供关键的参数即可,比如DB查询适配,API开发人员只需配置DB的连接和需要查询的SQL语句并进行连接发布,即可快速生成API。
2. 复杂业务逻辑的实现
在复杂的业务场景中,往往需要多个服务协同工作。API编排可以将这些服务作为独立的API接口单元,按照特定的业务逻辑和接口间的交互流程进行编排,从而实现复杂的业务逻辑。
API编排既支持对单个API接口的数据映射,协议转换,业务规则丰富处理。同时还支持多个API接口的串行,并行,组合式编排。形成面向业务可复用的组合API接口服务能力。
通过API编排,可以自动化地执行一系列的任务和流程,减少人工干预,提高业务处理效率。对于API编排工具的企业中的应用案例,就拿我们曾经实施过的一些行业和领域来说,比如:
企业财务:通过编排可以集成来自多个数据源的数据,通过API编排自动生成财务报表,如资产负债表、利润表和现金流量表,减少人工干预和错误。API编排还可与支付服务提供商的API集成,实现自动化的支付处理流程,包括发票生成、支付请求和支付确认、状态回写等。
电商购物:通过API编排实现快速购买流程,将底层的订单创建,付款,安排配送等多个API原子接口组合为一个复合接口能力。前端应用开发下单功能的时候仅需要调用组合API接口接口。
生产制造:在拥有多个生产基地的企业中,通过API编排将各个工厂的生产计划系统连接起来,实现生产任务的协同分配、资源优化和进度跟踪。结合AI算法和API编排,根据市场需求、原材料供应、设备状态等因素,自动调整生产计划,实现智能排产,提高生产效率和灵活性。
自动化与智能化:通过API编排将机器人、自动化生产线等设备与控制系统连接起来,实现生产过程的自动化和智能化。同时API编排平台也可以更好的和RPA机器人接口,实现跨多系统的业务自动化协同能力。
API接口可视化编排平台核心能力
远行API编排平台整体架构完全符合云原生架构标准。
采用Nodejs+Express+ETCD为核心,实现管理时和运行时分离,可同时部署多个运行时节点,管理端支持对API的多节点部署,平台支持容器化部署和国产化操作系统,支持单点嵌入到各类应用中,并且支持二次定制开发和定制。
左边的组件区域,目前支持的组件超过了20大类超过170+个组件,能完全满足各种应用集成场景需求,还能基于这些业务场景进行组件定制化开发。中间区域为编排流程设计区,可通过拖拉拽的方式进行组件的编排和连接,可进行组件的输出调试和日志记录。
1. 简单接口的可视化编排开发
API编排平台首先支持简单接口的快速可视化开发。对于简单接口的开发往往涉及到底层的数据库,消息中间件,文件系统的适配。涉及到数据映射处理,涉及到类似SOAP Web Service和Rest API接口的协议相互转换等。对于这些需求都可以通过平台可视化编排完成。
通过平台提供的各种可视化编排组件可以快速完成一个API接口的开发和发布。类似我们可以快速的连接到一个特定的数据库,将数据表或SQL语句快速的发布为一个Rest API接口。也可以对已有的API接口进行导入,进行数据映射和数据丰富,进行协议转换等各种处理。
比如我们要连接Mysql数据库发布一个查询用户信息的API接口,在API编排平台拖拉对应的编排组件进行连接就完成了API接口的快速发布。整个过程不用编写任何代码就可以完成。
2. 将多个原子API进行组装发布复合API接口的能力
对于多服务组合编排是API编排平台的核心能力。常见的就是API接口的串行编排和并行编排两种场景。
对于服务并行编排,类似项目信息导入和项目 WBS 信息导入两个原子服务,那么我们就可以提供一个新的项目信息导入服务,一次完成项目基本信息和项目 WBS 信息的导入。
对于服务串行编排,即将上一个服务的输出作为下一个服务的输入,将多个服务接口按流程执行的思路进行串联。类似我们在提交订单的时候需要先做预算校验接口,校验通过后调用保存订单API接口,然后在调用工作流接口启动工作流。那么我们就可以将三个接口串行编排为一个组合接口能力。
接口并行编排
通过接口并行编排,可以可以设计和发布一个统一接口,该接口会同时调用另外两个接口,调用完成后等待数据返回并统一进行合并,合并之后再返回给客户。
接口串行编排
在这里举一个接口串行编排的简单例子。比如新增供应商时需要判断供应商名称是否重复,如果重复则返回错误信息,如果不重复则写入供应商数据。该场景是典型的串行编排调用,通过对两个API的串行编排来实现一个满足重复判断并新增供应商的完整API。
简单总结
可以看到API编排的应用范围其实还是非常多的,最近几年在IT开发集成领域也比较火。当前大部分企业都只做了数据和接口的集成,而没有更好去思考接口的复用和能力开放。包括如何快速的开发和发布上层业务需要的接口能力。而这些正好是API编排的强项。
而企业如何让API编排与企业已有应用之间有机结合起来,如何更好的利用工具推动企业的SOA和微服务转型,如何让IT更加柔性的为业务服务,是每一个IT管理者应该重点思考的问题。