本文详细探讨了API生命周期管理的各个阶段,包括设计、开发、测试、部署和退役,分析了管理API生命周期的挑战与最佳实践,以及API在微服务架构中的重要性。
https://document360.com/blog/api-lifecycle-management/
简而言之,API 生命周期管理涉及通过遵循基于阶段的方法来设计、开发、测试和淘汰 API 来管理 API 的实践和流程。 API 生命周期管理是整体 API 管理的一个组成部分,我们将在本博文中详细讨论这一主题。
为什么 API 值得生命周期管理
在讨论如何管理 API 生命周期之前,我们先讨论为什么 API 值得像其他软件产品一样进行管理。
根据GlobeNewswire的市场研究,到 2030 年,微服务架构市场预计将达到 216.7 亿美元。在同一篇文章中,GlobeNewswire 报道称,“微服务架构市场的主要增长动力之一被认为是越来越多地使用智能手机、健身追踪器、平板电脑、可穿戴设备、智能家电和无人机等互联设备。”
那么,API 与微服务有什么联系呢? API 指定不同的软件组件应如何以编程方式交互和通信,并且是允许单独的系统组件使用架构模型(尤其是 REST)交换数据的“粘合剂”。 API 充当微服务架构中用不同编程语言编写的系统组件之间的“联络人”。这些组件需要一个用于通信的接口,即 API。如果没有 API,系统组件之间的通信就不可能实现。或者,充其量,效率极低。 API 不仅是微服务的接口,而且还是独立的功能块。
当我们之前定义 API 生命周期管理时,这些阶段应该看起来非常熟悉:设计、开发、测试等。您可能会认为 – 这些阶段对于管理软件生命周期来说是相同的。你是对的。 API 生命周期管理旨在将 API 视为产品,并以与标准软件相同的方式管理它们,因此各个阶段几乎相同。
企业将 API 视为完全质押的产品,是对 API 价值的认可,也是对 API 管理不当可能造成不利业务后果的认可。
遵循 API 生命周期管理计划的好处
遵循 API 生命周期管理计划可以让您:
* * 促进 API 设计、开发、测试、部署和退役的一致性。 * 通过深入的功能、性能和验收测试,确保 API 已准备好发布。 * 通过建立治理计划和 API 风格指南来生成一致的客户界面和流程。 * 专注于设计 API,以使用从概念上映射 API 功能的数据模型来解决业务问题。 * 促进整个 API 生命周期的协作。 * 通过反馈和 API 使用指标完善 API。 * 定义管理 API 用户如何与 API 交互的安全策略。 * 发布新版本的 API,同时保持 API 稳定性。 * 在不影响 API 用户的情况下停用 API 和 API 版本。
API 生命周期管理阶段
API 生命周期管理的各个阶段没有严格定义。虽然阶段名称可能有所不同,但大多数专家都在其管理计划中包含了下述活动。
1.规划设计
在规划和设计阶段,会识别和研究可以使用 API 解决的现实问题。业务利益相关者确定可以解决问题的具体服务和功能。在充分阐明 API 的业务目标后,团队成员可以将其广泛的 API 解决方案转化为功能和非功能需求。
下一步是创建数据模型,根据业务需求对系统进行建模。提供 API 管理平台的公司Tibco表示,“数据模型,简而言之,就是一组与解释数据需求和相关设计相关的数据规范和图表。”有多种数据模型。适用于 API 设计的两个模型是概念数据模型和逻辑数据模型。
* *概念数据模型将业务概念、流程和规则组织成概念框架,几乎没有技术细节。 *逻辑数据模型通过将概念转换为系统实体、关系和属性来继续需求分析。实体是与系统中某些功能相关的任何“事物”。关系是两个或多个实体之间的任何关系。最后,每个实体都有描述该实体的属性。
此阶段的另一个可交付成果是 API 样式指南。 API 风格指南确保 API 元素之间的命名约定、错误消息、分页等的一致性。
数据模型和风格指南完成后,业务利益相关者可以将他们的设计交给开发人员。
2.发展
下一步代表业务利益相关者在开发阶段向开发人员之间的移交。开发人员使用逻辑数据模型对 API 资源、端点、方法、参数、请求主体、模式和其他 API 组件进行建模。他们为 API 编写或生成详细说明所有 API 元素的 API 规范。开发人员根据 API 样式指南和逻辑数据模型中描述的 API 元素应用命名约定。
然后,开发人员可以创建一个模型,以允许利益相关者测试 API 的设计并收集反馈。模型通常仅包含 API 核心资源的示例,而不包含整个系统。模型 API 应包含一个命令行控制台,允许用户发送 API 请求并为用户提供某种接收数据的方法。模型是记录新用例并使用从用户收集的反馈微调 API 设计的机会。
更新的 API 设计完成后,开发人员可以根据 API 规范开发 API,同时利用为模型编写的现有代码。经理和 Scrum 领导者使用 JIRA 等工具来创建用户故事、短篇故事和小说,将 API 的开发组织成单独的开发任务。
3.测试
开发阶段完成后,就可以开始测试了。测试分为三种类型:功能测试、性能测试和验收测试:
* *功能测试根据 API 规范中描述的选项来测试 API 功能(输入和输出)。测试人员全面测试所有API资源和参数,以确保返回预期的输出。 *性能测试是对API的压力测试,确定API是否可以处理高流量。此测试确保 API 在设计上可扩展,并且在高流量期间具有可靠的性能。 *验收测试可确保 API 解决其想要解决的特定业务问题。 API 开发后,业务解决方案可以不断发展以包含新的用例。例如,基于API的使用,可能会发现有一个新的用例使用,需要向资源添加新的参数。
4.部署和监控
许多企业使用 API 的初始部署作为性能测试的第二阶段。 API 不是通过 API 请求人为地使系统超载,而是使用向 API 服务器发送许多同时请求的真实用户来测试 API。如果在部署期间或之后出现问题并发出适当的通知,则应该有一种机制将 API 恢复到稳定版本。
API 必须通过安全的环境提供。 API 通常使用 AWS API Gateway 或 Microsoft Azure API 等 API 管理平台进行长期部署和管理。这些平台为开发人员提供了对 API 的访问以及客户端和 API 服务器的安全连接。 API 管理平台是长期成功部署和管理 API 不可或缺的一部分。它们通常包含以下模块:
** API 网关就像 API 的安全卫士,负责对用户进行身份验证、授权客户端请求并保护客户端与 API 服务器的连接。 API 网关还可以根据某些业务需求将流量重定向到正确的资源。 * API门户可以自动生成新文档并允许开发人员部署他们的API。 * API生命周期管理模块允许您在API生命周期的每个阶段管理API。 API 管理平台可以帮助您管理 API 的退役。 * API 策略管理器允许您为 API 用户配置策略模板,以管理 API 流量、安全性和性能。 * API 分析允许企业监控 API 使用情况、活动日志和历史数据,以提供 API 实现其预期业务目标的高级状态。
5.退休
退役阶段涉及废弃整个 API 。停用 API 时需要考虑很多事项:
** 是否有针对内部利益相关者和外部客户的退休计划? * 有沟通计划吗? * 用户是否需要采取任何行动,或者退休是否无缝? * 如果适用,您将如何管理向新 API 的过渡?
废弃 API 需要有效的沟通和清晰的文档。如果需要用户操作,则尤其如此。很多时候,旧版 API 会被功能改进的新 API 所取代。停用阶段还可以应用于停用的 API 版本,以确保平滑过渡到新版本。
停用过程需要密切监控,以确保 API 用户充分了解情况,并且不会受到 API 停用的负面影响。
另外,请查看我们有关API 策略的文章
API 生命周期管理的挑战
以下是与使用 API 管理平台可以提供的潜在解决方案管理 API 生命周期相关的挑战。
1.版本控制
如果开发人员不能确保 API 稳定性,新版本的 API 就有可能破坏 API 用户的应用程序。有些新版本是无缝的,仅涉及后端的更改,不影响API接口。另一个“低影响”的更改还可能涉及添加一个新参数,该参数需要文档来告诉用户如何使用它。
但是,当 API 接口发生更改并随后更改用户与 API 交互的方式时,可能会出现问题。开发人员应通过沟通计划、发行说明和清晰的文档来确保平稳过渡,以集成影响现有功能的新功能。 API管理工具可以帮助您通过回滚机制来管理新版本的部署。
2.安全
API 暴露敏感的业务数据。企业必须为 API 用户提供安全接口,以便与保护这些数据的 API 进行交互。
API 管理平台提供通过以下方式处理 API 访问的功能:
** 允许用户注册计划,通常是逐步分层的 * 为客户端应用程序生成 API * 提供用于访问 API 的接口 * 保护客户端和 API 之间的连接 * 管理规定与 API 交互的安全策略
3.文档
文档是 API 管理中经常被低估的一个方面。
遵循 REST 等设计语言的 API 可以利用直接从规范呈现文档的第三方工具。此类文档称为“参考”文档,提供所有 API 组件(如资源、端点和参数)的综合手册。
API 概念文档是一种被忽视的文档形式,其中包括入门指南、用例和教程。该文档是劳动密集型的,因为它是人工编写的,需要技术编写者、业务利益相关者和开发人员之间的协作。随着开发团队和技术作者的时间和资源限制,概念文档变得具有挑战性。
API管理平台不会为您编写概念文档,它可以自动为您的新版本生成参考文档。
准备好将您的 API 文档提升到新的水平了吗?今天和巴克利布一起!
另外,请查看我们关于API 文档工具的文章
4.治理
治理是确保 API 的所有客户端接触点的开发人员体验一致的实践。 API 风格指南可以确保在整个 API 生命周期中遵循一致的设计模式,因为 API 是根据反馈进行设计、开发和改进的。样式指南包括所有 API 元素的指南,有助于确保属于同一平台的 API 之间的一致性。
治理不仅仅包括设计一致性,还包括 API 的所有标准化实践,包括文档标准。
5.可扩展性
API 的可扩展性是衡量 API 在不牺牲性能的情况下支持增加 API 使用的能力的指标。
API 测试的一部分是预生产中的性能测试,即通过同时请求破坏 API 对 API 进行压力测试。发布 API 后,随着 API 用户数量的增加和 API 压力的增加,必须保持性能。部署后需要进行测试,以确保服务的一致性,兑现客户的承诺。
6.分析
无法有效捕获分析的企业无法保持可扩展性并发现业务洞察。
企业不是构建自定义分析应用程序,而是使用提供内置分析仪表板的 API 管理平台来了解 API 使用模式、性能限制或频繁错误的原因。然后,企业可以利用收集到的数据做出明智的业务决策,以改进 API。
API生命周期管理的最佳实践
以下是遵循 API 生命周期管理计划时需要考虑的一些最佳实践。
1.不要缩短设计阶段
遵循 API 生命周期管理计划的好处之一是在深入的设计和规划阶段充分充实业务目标。在编写一行代码之前,请确保充分阐明 API 的业务目标。设计阶段产生功能和非功能需求、数据模型和 API 风格指南。创建 API 规范需要这些输出。过早结束规划和设计阶段可能会导致开发阶段发生代价高昂的变更。
2.选择正确的 API 管理工具
API 管理工具可以帮助您管理 API 生命周期。根据您的需求选择正确的工具非常重要。例如,如果 API 目标是公共云计算,那么最好使用支持云 API 管理(多云/混合云)的平台,例如 Amazon 或 Google 提供的平台。这些平台还认识到REST API可能不需要一套 API 管理工具。在这些情况下,您可能只需要使用他们的 API 网关。
您是否需要一个灵活的 API 管理平台来整合您选择的工具并集中管理它们?那么,最好使用像Anypoint这样强调“自我集成”和组件定制的平台。
您可能根本不需要中央 API 管理工具。相反,您可以创建一个基础架构来将单独的工具拼接在一起。例如,您可以将不同的工具用于 API 网关、API 生命周期管理、API 策略管理器、分析等。
3.指定专门的 API 开发团队
专门的开发团队允许企业构建和维护 API,同时通过治理计划确保一致性。团队可以不断评估公司的 API 产品组合,以确定新业务领域或现有 API 的改进领域。它还减轻了文档的负担,这对一个开发人员来说管理起来太困难了。
API 开发团队包含许多负责访问和管理 API 的人员。 API 应该可以通过搜索和版本控制过滤器发现。团队成员应该能够找到API 文档、API 代码和用于测试的文件。
4.优先考虑移动设备友好性
API 应采用类似于响应式网页设计的“移动优先”理念来支持移动体验。 API 治理计划可以确保 API 组件始终支持 API 在移动开发中的使用。
5.将遗留服务货币化
企业可以通过将其后端服务暴露于公共网络服务来货币化。 API 生命周期管理通过思维方式的转变使这成为可能。在公共 API 意识出现之前,企业可能不会使用这些服务,因为它们不是具有生命周期的“产品”。企业现在正在将 API 经济出现之前未使用的遗留服务产品化。他们以与标准软件相同的方式管理这些服务,从而允许他们的 API 随着收集用户反馈而不断发展。
另外,请查看我们有关API 开发人员经验的文章
API 生命周期管理是一种基于阶段的方法,用于管理从设计到退役的整个 API 生命周期。它是整体 API 管理的一个方面,可以长期促进 API 的一致性、性能和可扩展性。
随着微服务架构的日益普及,API 作为促进系统组件之间通信的粘合剂发挥着重要作用。 API 不仅仅是孤立的功能,而且是应以与标准软件相同的方式进行管理的“产品”。 API 生命周期管理为企业提供了执行此操作的框架。