API生命周期的5个阶段

152 阅读6分钟

API帮助各种软件产品进行协同工作。同时API也是软件,提供其他软件组件或系统之间的通信或交互方式,每个API都有一个生命周期。

API经常在迭代软件开发过程中扮演着重要的角色,该过程发展迅速。开发人员必须保持API的稳定性,同时关联的应用程序要进行频繁的更新和更改。对于依赖于该API的软件和服务,不断发布API的新版本可能会很麻烦。

API****生命周期

尽管对于API生命周期的实际部分有不同的看法,但本文使用五个经典阶段:规划,开发,测试,部署和淘汰。

**1.**规划阶段

任何API开发项目都必须从规划和设计开始。让业务团队成员确定API应该公开哪些服务和功能。记录特定的业务需求,并输出为功能和非功能的全面需求文档。

建立API需求后,开发团队可以根据命名规则,体系结构和要使用的特定协议,做出明智的设计决策。规划和设计应产生一个API规范,该规范描述了接口支持的方法和操作以及任何技术约束。

**2.**开发阶段

API可以用多种编程语言编写,包括PHP,Python,Ruby,.NET,C#,Java和Perl。编码和测试可能需要进行多次迭代,但是开发团队不应在API稳定之前将其发布到生产环境中。最终,API开发需要优秀的计划、编码和测试功能,以及最大限度地减少面向客户的API更改所需的原则。

API开发可以由单个开发人员完成,但通常由一个独立的、专用的API开发团队进行开发。由于是团队合作,因此多个开发人员将需要协作访问和维护他们的API。整个API团队都应该能够查看API代码、文档和测试文件并与之交互。这对于实现全面的搜索和版本控制也很重要,有助于授权的开发人员根据条件(如项目和版本)来定位API。

此外,多个开发人员可以更轻松地创建文档,测试用例,甚至可以创建使企业成功使用公共API所需的一些营销材料。

API开发计划应始终围绕以下三个注意事项:

如何跟踪API的使用,性能,错误和其他重要指标。

安全组件,特别是OAuth 2.0授权和API密钥验证。

性能和可访问性问题,例如节流和速率限制,以确保足够的API访问。

**3.**测试阶段

开发人员必须彻底测试API的每个迭代的功能、性能和用户接受度。测试人员可以将不满意的结果反馈给开发人员,进一步构建和改进API代码。

功能测试可验证每个功能特性是否按预期运行。使用模型和测试版本根据其规范评估API的功能。功能测试还强调安全性和错误处理能力,确保API免受崩溃或攻击。

性能测试评估API在负载下的执行情况。许多api都受到不稳定的流量和不可预测的负载条件的影响。性能测试指标衡量API在重负载下的性能,例如响应某个应用程序请求所需的时间。

验收测试会跟踪API的使用情况,并判断它是否达到了预期的业务目的。验收测试可以揭示业务流程或API本身的变更可能产生的任何新需求。它可以帮助识别对现有函数的可能更改,从而使API更加有用。例如,在数据可能被传递到API或从API传出的情况下,验收测试可以揭示需要将更多或不同的数据作为参数传递。

**4.**部署阶段

当一个API稳定且安全,就可以投入生产了。然而,与许多软件产品一样,API的初始版本可能会作为性能测试和验证的第二阶段。

例如,开发人员可能会尝试将最新版本的API应用到没有最新版本的API环境中,在该环境中,开发人员可以在不影响实时版本的情况下尝试使用该软件的最新API版本。理想情况下,当开发人员准备好最新版本时,该API即可用于完整的生产环境。此过程的关键部分是收集跟踪API性能的指标,例如它遇到的错误数量。

开发人员必须将新API版本造成的中断降到最低。编写良好的API应该包含一个版本调用函数,该函数可以检索已知良好的版本,以便在新版本不合适的情况下投入生产。

修复错误或提高性能的API更改通常不会影响API调用和响应。但是,用于身份验证的新参数和参数,或其他基本设计更改,可能会迫使用户在访问新的API版本之前执行软件更新。

**5.**退休阶段

开发人员可以随时间扩展和更新API以提高业务价值,但是随着时间的推移,每个API都会增加基础架构和支持成本。最终,软件团队淘汰了旧的API和旧版本的API。

因此,企业需要认真规划从一个API版本到另一个API版本的迁移路径,并在优化新版本的同时学习一次维护多个API版本。软件团队需要一个终止生命周期的计划,以便在不严重影响日常运营的情况下停止使用API。

监控是这个退出过程的重要组成部分,尤其是在跟踪API的年龄和历史记录时。例如,一家企业可能发现有些API已经90至120天几乎没有使用过了。但是,它们仍托管在基础结构中,消耗资源并产生成本。这就是为什么跟踪这些API是一个有效的API退休计划的重要组成部分。

本文为公司内部培训使用,借助EOLINKER API管理工具进行展示,目前公司内部统一使用EOLINKER进行API管理及自动化测试,欢迎有兴趣的朋友与我交流。

工具:www.eolinker.com