作者 | 陈忠润
来源 | Erda 公众号

写在前面

API 全生命周期管理(Full Life Cycle API Management)是指对 API 从规划、设计到实施、测试、发布、运行、调用直至版本变更与退出的整个周期的管理。

一般来说,API 全生命周期可以分为三个层面和六个阶段。

三个方面是指:设计,实施,管理,如下图所示:

Mulesoft 对 API 管理三个层面的图示

六个阶段是指:

  • 规划与设计阶段
  • 开发阶段
  • 测试阶段
  • 部署与运行时阶段
  • 运维监控阶段
  • 版本管理与弃用阶段

用以支持 API 全生命周期管理的工具应当具备以下能力:

  • API 集市,用于 API 提供者发布文档展示应用程序的服务能力,API 的使用者查阅服务接口进而开发客户端。
  • API 网关和访问管理工具,用于 runtime 管理、访问管理、安全管理、数据收集等。
  • 监控管理工具,用于监控 API 相关指标。
  • 接口测试工具,用于测试接口。
  • API 设计工具,用于设计和编写 API 文档。

近年来谷歌收购 Apigee、Red Hat 收购 3scale 等事件无一不在证明 API 生命周期管理越来越被业界所重视。

如下图所示,是 Ganter 出具的 API 全生命周期管理“魔力象限”相关报告:


Magic Quadrant for Full Life Cycle API Management by gartner.com
(图片来源:http://gartner.com)

魔力象限将参与角色分为四大象限:

  • 领导者(第一象限)
  • 挑战者(第二象限)
  • 观望者(第三象限)
  • 探索者(第四象限)

我们可以看到:Google、Mulesoft、Microsoft、IBM、Kong 等众多熟悉的身影出现在了领导者第一象限;Amazon Web Services、TIBCO Software、Broadcom 等也紧随其后。

不同阶段解读

API 管理的核心是需要服务 API 的整个生命周期并启用关联的生态系统。 API-First 方法将 API 视为产品并对其进行管理,强调整个生命周期的重要性。通过精心设计、管理和维护的 API 可为开发人员提供良好体验,为组织带来价值。

API 全生命周期管理设计的产物是 API 文档,实施的产物是 API 的服务实例,它们都是被管理对象。下面我们将针对 API 生命周期管理的不同阶段进行详细解读。

1. 规划与设计阶段

规划与设计阶段要规划应用程序功能,设计 API,编写、评审以及发布 API 文档。

当开始规划应用程序新的功能点时,就要着手构思应用程序要呈现怎样的 API。API 涉及哪些资源、哪些操作、什么样的权限、什么样的场景等等,都是这个阶段的思考重点。设计 API 时需要充分考虑,如接口易用性、实现难度、价值等。如果不在此阶段思虑充分,就会设计出不可靠的 API,以至于开发出“腐烂”的代码和不可靠的功能,为组织带来风险。

设计阶段共有四个主要任务:

  1. 设计:确定业务流程和需求,对资源合行为进行抽象。
  2. 建模:API 资源建模,API 操作与方法建模,请求/响应有效负载/代码建模等。
  3. 反馈:开发人员间互相反馈,完善设计稿。
  4. 验证:根据开发人员的反馈适当修改 API 设计,继续验证。

API 设计的目标是产生一份 API 协议,一般是一份具有可读性的 API 文档。这种先行设计 API 的方法被称为“API-First”。

API-First 是 DevOps 实践中发展出来的,在项目开发中致力于开发出一致可重用的 API 方法论。顾名思义,API-First 就是 API 先行,在计划开发应用程序时,先设计应用程序接口,然后实现接口功能。与之相对的是 Code-First,即先实现应用程序功能,然后在此基础上根据外部需求抽象出接口。

相较于 Code-First,API-Fir

当 Erda 遇上 API 生命周期管理,好戏开始了!相关推荐

  1. 数据API开发如何快速上手:先了解什么是数据API生命周期管理

    任何事务都有一个生命周期,数据API也不例外.上一段视频,我们解释了什么是数据API?.这段视频,我们来了解一下数据API的生命周期管理. 我们把每个数据API生命周期,划分为API规划.API开发. ...

  2. Eolink神技之二、API全生命周期管理

    Eolink神技之二.API全生命周期管理 目录 Eolink神技之二.API全生命周期管理 Eolink全API全生命周期管理解决的问题 演示过程 一.创建项目文档 1.1.创建项目 1.2.项目管 ...

  3. Elasticsearch索引生命周期管理方案

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 一.前言 在 Elasticsearch 的日常中,有很多 ...

  4. Android 插件化原理解析——Activity生命周期管理

    之前的 Android插件化原理解析 系列文章揭开了Hook机制的神秘面纱,现在我们手握倚天屠龙,那么如何通过这种技术完成插件化方案呢?具体来说,插件中的Activity,Service等组件如何在A ...

  5. Android apk动态加载机制的研究(二):资源加载和activity生命周期管理

    转载请注明出处:http://blog.csdn.net/singwhatiwanna/article/details/23387079 (来自singwhatiwanna的csdn博客) 前言 为了 ...

  6. 谈AK管理之基础篇 - 如何进行访问密钥的全生命周期管理?

    简介: 我们也常有听说例如AK被外部攻击者恶意获取,或者员工无心从github泄露的案例,最终导致安全事故或生产事故的发生.AK的应用场景极为广泛,因此做好AK的管理和治理就尤为重要了.本文将通过两种 ...

  7. 如何发布接口_Devops下的接口全生命周期管理与测试

    什么是devops?随着时间的推移,devops的定义也在不断的演进.对于其定义可能出现千人千面,但从核心观点,整体业界还是保持着一致的认识.DevOps不是单一的技术或者工具,甚至不只是一个流程,而 ...

  8. 用户生命周期常用指标_生命周期管理工具如何使用指标

    用户生命周期常用指标 格雷格·萨特克利夫(Greg Sutcliffe)是长期会员,现在是工头社区的社区负责人 . Foreman是用于物理和虚拟服务器的生命周期管理工具. 他一直在研究社区度量标准在 ...

  9. zuul源码分析之Request生命周期管理

    为什么80%的码农都做不了架构师?>>>    zuul核心框架 zuul是可以认为是一种API-Gateway.zuul的核心是一系列的filters, 其作用可以类比Servle ...

最新文章

  1. 17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ
  2. C8-1 复数加减乘除 (100/100 分数)
  3. 别把机器学习和人工智能搞混了!
  4. 基类和派生类中使用static_cast和dynamic_cast进行类型转换
  5. 华为鸿蒙系统可以用在哪里,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  6. Java反射机制的基本概念与使用_Java进阶之reflection(反射机制)——反射概念与基础...
  7. 名片管理系统python详解_名的解释|名的意思|汉典“名”字的基本解释
  8. MySQL面试准备——64页pdf
  9. 深度搜索剪枝——数的划分
  10. 引路蜂地图API:Gis.Navigation包定义
  11. git 简单使用 基本操作
  12. 小小智慧树机器人_中国工厂番外篇丨AGV机器人演绎智能“搬运工”
  13. vue中element-ui table滚动加载
  14. 第二次小组实践作业小组每日进度汇报:2017-11-29
  15. 从单张图重建三维人体模型综述(一)
  16. Audio-PCM设备的创建
  17. Makefile里的wildcard 理解
  18. 手机 CPU 架构类型了解
  19. Tomcat的安装与启动
  20. python管理系统web版_基于Python实现简单学生管理系统

热门文章

  1. 【MySQL】安装check requirement里面的很多选项左边多出现红叉叉解决方案
  2. 阿里云iot--钉钉防盗大炮
  3. 8.1分享zwh分享图
  4. java基础 swing编程实战
  5. 2020团队程序设计天梯赛 L2-2 口罩发放 (25分)
  6. 数据结构-迪杰斯特拉,佛洛依德(两顶点之间可到达的最短距离)
  7. Margin的使用方法
  8. [翻译] 微软正式宣布 .NET 5版本
  9. JAVA笔记(十五):枚举类、注解、异常
  10. 程序员如何维护自己?