API 治理技术实践 - 上
开放银行(Open Banking)常与 API 经济相提并论,通过 API 与合作伙伴共享数据、算法、交易、流程是其常用手段,因此做好 API 基础平台搭建、API 安全防护、API 治理及 API 持续演进是“让金融服务无处不在”的重要基石。
本文将以开发者诉求为切入点,分析 API 治理的必要性与治理目标。为读者提供 API 治理思路与参考。
一、API 治理问题
目前我行大小系统已超过 200 套,系统架构由单体向分布式架构演进,大量系统进行了微服务化改造,API 接口数量成倍增长,API 设计、使用与管理均面临较大挑战。
1、API 设计方式形式各异
当下 API 主流设计形式主要有两类:先设计后研发的线下编写模式、文档代码一体化的代码驱动模式。
1.1 线下文档
编写线下文档是目前最常见的 API 设计管理方式,一般通过 Excel、Word 等进行 API 设计管理,存储在 Svn、Git、Confluence 等位置。虽然简单,但是弊端也很明显:
API 文档模板风格难以统一;
难以检查 API 接口设计落地情况;
难以进行 API 维护(修改、删除)与统计;
管理严重依赖管理者,文档位置容易遗忘、人员轮换后难以维护;
API 文档需线下传阅,共享困难。
1.2 代码驱动
常见的 API 文档自动生成工具有 Swagger 与 JavaDoc 等。通过工具生成的 API 文档与实际代码紧密关联,此类文档普遍存在以下问题:
违背了先设计后开发的原则;
无法验证 API 设计是否规范;
API 访问权限无法控制;
API 文档分散于各个系统。
除此之外,使用 Swagger 生成还有以下问题:
对代码侵入性强;
需开发人员投入额外学习成本;
编写依赖开发人员;
文档展现依托于服务的正常运行。
此外,在实际工作中,公司一般都有 API 设计规范。常见的线上、线下的管理方式均难以落地 API 设计规范。
2、API 文档利用不充分
当下 API 文档的利用方式普遍停留在 “看” 这一阶段,没有充分发挥 API 文档的价值。团队间协作、代码开发、测试案例编写均应依托于 API 设计,在这些场景 API 大有可为。
3、API 维护成本巨大
API 变更在软件开发过程中是不可避免的。对 API 消费方而言,API 变更极大可能会产生关联影响。然而,API 关联方一般线下维护,变更也通过线下直接通知关联方,难以保证通知的及时性与准确性,而遗漏通知对象、变更点说明不到位均可能对消费方产生重大影响。
部分系统支持多版本 API 同时运行,针对不同的 API 消费方提供不同版本。如何维护多版本 API 并说明版本适用对象也是 API 管理者的痛点。
二、API 开发者的诉求
根据华为《2020 中国 API 生态与开发者现状调研报告》不难看出 API 开发者对 API 工具的需求涵盖了:设计、测试、规范、开发、文档、Mock、安全及分析报表等场景。
而从下图可以看出,“易用性”、“与现有工具的集成”和“效率”是开发者关注的重点。
三、中原银行的诉求
中原银行成立于 2014 年。经过多年发展已拥有 200 余套系统,API 的数量也逐渐增多,高效管理与应用 API 已成为十分迫切需求。根据开发者诉求调研报告,结合行内情况及项目实施经验,对 API 治理从以下两个层面提出诉求:
管理层面:
建立企业级 API 市场,线上化管理 API;
建立发布、订阅机制,实现服务依赖管理和访问控制;
联动现有系统打通 API 全生命周期治理;
落地 API 设计规范。
研发层面:
模板代码自动生成:DTO、Controller、Service;
提供 API 挡板服务;
API 设计落地检查:检查设计与 API 实现是否一致;
统一 API 设计器。
四、API 治理的服务对象与目标
API 是软件的关键组成部分,贯穿着系统生命周期的各个阶段,因此产品经理、技术经理、开发工程师、测试工程师等等都是 API 治理的服务对象。
需求阶段:产品经理
利用现有 API 快速实现产品目标,降低产品实施成本的同时保证产品质量。获取产品运营反馈,分析产品需求。
设计阶段:技术经理
落地设计规范、优化设计方案,在团队内实现设计成果的实时同步。
研发阶段
开发工程师
通过 API 设计自动生成代码,减轻开发负担的同时又保证代码质量。
基于 API 设计自动提供 mock 服务,降低开发团队间的进度依赖,提升开发效率。
借助 API 治理平台的测试工具与测试案例管理功能,可方便的对服务进行调试和回归验证。
测试工程师
基于 API DSL(领域专属语言 Domain Specific Language)自动生成通用的 API 测试案例。减轻测试人员编写接口测试代码工作量的同时提升测试质量。
通过 API 治理平台提供的 mock 服务,接口测试人员无需等待开发完成即可调试测试案例。
运营阶段:运维与管理人员
借助平台提供的企业级报表,可查看全行 API 资产情况、服务依赖关系、API 服务质量曲线,并结合数据分析,发现优化点,持续提升企业 API 治理水平和服务质量。
API 治理旨在为业务需求团队、研发团队提供方便、快捷、高效的 API 治理能力;以设计为核心,联动 API 生命周期各个环节,着力于 API 线上化管理,打通 API 生命周期的各环节、盘活 API 资产、落地 API 设计规范、建立完善的 API 治理体系、提升研发效能与质量。
结语
从上述分析可以看出,API 治理对象并非只有 API,一个能联动需求、设计、开发、测试、运营的 API 全生命周期的治理平台是非常有必要的。那么,如何建设 API 治理平台呢?
技术实践《API 治理技术实践-下》将为您提供一个建设方案。
参考资料《2020 中国 API 生态与开发者现状调研报告》
本文转载自原银科技
原文链接:API治理技术实践-上
版权声明: 本文为 InfoQ 作者【中原银行】的原创文章。
原文链接:【http://xie.infoq.cn/article/f7336ec358862885be639b50a】。文章转载请联系作者。
评论