API 生命周期管理:阶段、挑战与最佳实践
API生命周期管理是分阶段管理API设计、开发、测试、部署和退役的实践,是整体API管理的一部分,旨在促进一致性、性能和可扩展性,需应对版本控制等挑战并遵循设计先行等最佳实践。
简单来说,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的业务目标后,团队成员可以将他们广泛的API解决方案转化为功能性和非功能性需求。
下一步是基于业务需求创建数据模型来对系统进行建模。根据提供API管理平台的公司Tibco的说法,“简而言之,数据模型是一组用于解释数据需求和相关设计的数据规范和图表。”数据模型有几种类型。其中适用于API设计的是概念数据模型和逻辑数据模型。
-
概念数据模型将业务概念、流程和规则组织成一个技术细节很少的概念框架。 * 逻辑数据模型通过将概念转化为系统实体、关系和属性来继续进行需求分析。实体是与系统中某些功能相关联的任何“事物”。关系是两个或多个实体之间的任何联系。最后,每个实体都有描述该实体的属性。
此阶段的另一个可交付成果是API风格指南。API风格指南确保了API元素在命名约定、错误消息、分页等方面的一致性。
在数据模型和风格指南完成后,业务利益相关者可以将他们的设计移交给开发人员。
开发
下一步代表了在开发阶段,业务利益相关者向开发人员的交接。开发人员使用逻辑数据模型来建模 API 资源、端点、方法、参数、请求体、模式和其他 API 组件。他们为 API 编写或生成 API 规范,详细说明所有 API 元素。开发人员根据 API 风格指南和逻辑数据模型中描述的 API 元素来应用命名约定。
然后,开发人员可以创建一个模拟版本,以便利益相关者测试 API 设计并收集反馈。模拟版本通常只包含 API 核心资源的示例,而非整个系统。模拟 API 应包含一个命令行控制台,允许用户发送 API 请求,并提供某种方式让用户接收返回的数据。模拟版本是记录新用例并利用从用户那里收集的反馈来微调 API 设计的机会。
一旦更新后的 API 设计完成,开发人员就可以基于 API 规范进行 API 开发,同时利用为模拟版本编写的现有代码。经理和 Scrum 负责人使用像 JIRA 这样的工具来创建用户故事、短故事和长故事,将 API 的开发组织成一个个独立的开发任务。
测试
在开发阶段完成后,测试就可以开始了。测试有三种类型:功能测试、性能测试和验收测试:
- 功能测试基于API规范中描述的选项测试API功能(输入和输出)。测试人员全面测试所有API资源和参数,以确保返回预期的输出。
- 性能测试是对API的压力测试,以确定API能否处理高流量。此测试确保API在设计上是可扩展的,并在高流量期间具有可靠的性能。
- 验收测试确保API解决了其旨在解决的特定业务问题。业务解决方案在API开发后可能会发展,以包含新的用例。例如,基于API的使用情况,可能会发现存在一个新的用例,需要向资源添加一个新参数。
💛🧡🧡客户评价:Baklib做得很好,您将获得一个易于设置和运行的可靠知识库系统。用户界面简单明了,对文章进行编辑也很快。它没有过多您不需要的额外功能和,他们显然花了时间把基础知识做好。
部署与监控
许多企业将API的首次部署作为性能测试的第二阶段。不是用API请求人为地使系统过载,而是通过真实用户向API服务器发送大量并发请求来测试API。应该有一个机制,以便在部署期间或之后出现问题时,能够将API回滚到稳定版本,并设置适当的通知。
API必须通过安全环境提供。通常使用Baklib等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所取代。退役阶段也适用于API版本的退役,以确保向新版本的平稳过渡。
退役过程需要密切监控,以确保API用户得到充分告知,并且不会受到API退役的负面影响。
另外,请查看我们关于 API 策略 的文章
API 生命周期管理的挑战
以下是管理 API 生命周期所面临的挑战,以及 API 管理平台可以提供的潜在解决方案。
版本控制
如果开发者不能确保 API 的稳定性,新版本的 API 有可能破坏 API 用户的应用程序。一些新版本是无缝的,只涉及不影响 API 接口的后端更改。另一种“低影响”的更改也可能涉及添加一个新参数,这就需要通过文档来告知用户如何使用它。
然而,当 API 接口发生变化,并随之改变用户与 API 的交互方式时,就可能出现问题。开发者应通过沟通计划、发布说明以及清晰的文档来确保平稳过渡,这些文档指导如何集成影响现有功能的新特性。Baklib 这样的 API 管理工具可以帮助你管理新版本的部署,并提供回滚机制。
安全性
API 暴露了敏感的业务数据。企业必须为 API 用户提供安全的接口来与保护这些数据的 API 进行交互。
API 管理平台通过以下方式提供处理 API 访问的功能:
- 允许用户注册计划(通常是渐进分层的)
- 为客户端应用程序生成 API
- 提供访问 API 的接口
- 确保客户端与 API 之间的连接安全
- 管理规定与 API 交互的安全策略
文档
文档是 API 管理中一个经常被低估的方面。
遵循REST等设计语言的API可以利用第三方工具直接从规范生成文档。这类文档被称为“参考”文档,提供了所有API组件(如资源、端点和参数)的综合手册。
一种常被忽视的文档形式是API概念性文档,包括入门指南、使用案例和教程。这种文档是劳动密集型的,因为它需要人工编写,并且需要技术作者、业务利益相关者和开发人员之间的协作。随着开发团队和技术作者面临时间和资源的限制,编写概念性文档变得具有挑战性。
API管理平台不会为您编写概念性文档,但它可以为新版本自动生成参考文档。
准备好将您的开发文档提升到新的水平了吗?立即预约Baklib的演示!
治理
治理是确保API所有客户端接触点提供一致开发者体验的实践。API风格指南可以确保在整个API生命周期中,从设计、开发到根据反馈进行改进,都遵循一致的设计模式。风格指南包含所有API元素的指导原则,有助于确保属于同一平台的API之间的一致性。
治理不仅限于设计一致性,还包括API的所有标准化实践,包括文档标准。
可扩展性
API的可扩展性衡量的是API在支持使用量增加的同时而不牺牲性能的能力。
API测试的一部分是在预生产环境中进行性能测试,即通过对API同时发起请求以对其进行压力测试,直至其达到极限。在发布API后,随着API用户数量成倍增长和API承受的压力增加,必须维持其性能。部署后需要进行测试,以确保服务的连贯性,兑现对客户的承诺。
分析
无法有效获取分析数据的企业将难以维持可扩展性并挖掘商业洞见。
与其构建定制的分析应用程序,企业通常会使用像Baklib这样的知识中台平台,其内置的分析仪表板有助于理解API使用模式、性能瓶颈或频繁错误的原因。企业可以利用收集到的数据做出明智的商业决策,以改进API。
API生命周期管理的最佳实践
以下是在遵循API生命周期管理计划时需要考虑的一些最佳实践。
不要跳过设计阶段
遵循API生命周期管理计划的好处之一,是在深入的设计与规划阶段全面充实业务目标。在编写任何一行代码之前,确保API的业务目标已得到充分阐述。设计阶段会产出功能性和非功能性需求、数据模型以及API风格指南。这些产出是创建API规范所必需的。过早结束“规划与设计”阶段可能会导致在开发阶段进行代价高昂的变更。
选择合适的API管理工具可以帮助您管理API生命周期。根据需求选择正确的工具至关重要。例如,如果API目标面向公共云计算,最好使用支持云API管理(多云/混合云)的平台,例如亚马逊或谷歌提供的平台。这些平台也认识到REST API可能不需要全套API管理工具。在这些情况下,您可能只需要使用其API网关。
您是否需要灵活的API管理平台,允许您整合自选工具但进行集中管理?那么,使用强调“自主集成”和组件定制化的平台(如Anypoint)可能更合适。
您可能完全不需要中心化的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 生命周期管理为企业提供了实现这一目标的框架。