写点什么

API 治理技术实践 - 上

作者:中原银行
  • 2021 年 12 月 23 日
  • 本文字数:2051 字

    阅读完需:约 7 分钟

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治理技术实践-上

发布于: 2021 年 12 月 23 日
用户头像

中原银行

关注

中原人民自己的银行! 2020.02.06 加入

中原银行是河南省属法人银行,中国500强商业银行第24名,总部位于河南省郑州市。我行以“贴心、专业、合作、共赢”的理念,全力打造中原人民自己的银行! 官方网站:http://www.zybank.com.cn/

评论

发布
暂无评论
API治理技术实践-上