在我之前谈API网关的时候曾经谈到过快速开发平台,即将API快速开发的一些内容放入到API网关中,实际来看围绕API全生命周期管理,本身包括了开发态,运行态,运维态。
对于API网关更多的是解决运行态的问题,API网关本身应该轻量化设计,不做太多的协议转换,适配,数据映射等工作,这些工作应该放到API开发平台来完成。API开发平台最终就是开发完成并暴露一个标准的Http API接口,并将接口注册和接入到API网关。
API全生命周期管理
围绕API全生命周期管理来看,整个子系统划分如下:
简单来讲这部分可以分解为四个子系统,即API开发平台,API网关引擎,API监控运维平台,API全生命周期管控平台。
对于传统ESB总线里面的适配器,协议转换等相关比较重的内容,都可以转移到API快速开发平台来完成,即API开发平台暴露标准的API服务接口,注册和接入到API网关引擎。而对于API监控平台则从引擎采集日志信息,进行API性能监控和日志监控分析。
API全生命周期管控平台实现API接口从设计,开发,测试,部署上线的全生命周期管理,也可以理解为底层三个子系统的一个统一管理门户,实现和下面三个子系统集成。
对于API开发平台开发和配置完成的微服务API接口,可以支持自动部署到微服务运行平台。
基于对象建模驱动
在整个API开发平台实现中,核心思想仍然应该是基于对象建模驱动,通过对象建模很好的实现接口和底层数据库,数据库表之间的解耦,也方便实现底层多数据库,多表的支持能力。
当前很多API快速开发平台都是基于数据库对象或表,直接发布类似CRUD的API接口服务,但是基于是数据库表的直接发布,我们仍然建议逆向对象这层,方便后续在对象层进行相关的组合,规则扩展等操作。
对象建模和API接口契约
可以直接在API开发平台创建对象,并对数据项进行定义,对象是一个多层的树状结构实体。一个对象可以向数据库生成多张表。对于已经存在的数据对象,也可以进行组合,将多个组合为一个复合对象结构。
对象的好处即是一个完整的对象属于同一生命周期,可以一起进行事务控制。
一个设计好的对象可以默认生成标准的POST,GET,DELETE等接口操作方法,类似下图,整个对象接口契约的生成也应该是自动的。
定义好的对象可以直接生成类似RAML,YAML,WADL等接口契约文件。
类似Swag