← 返回所有文章

API优先开发:Scrum团队如何构建更好的集成

By XNM Technologies · February 27, 2023 · 1 min read
API优先开发:Scrum团队如何构建更好的集成

集成失败是软件开发中代价最高的缺陷之一——不是因为单个bug复杂,而是因为它们来得太晚。两个团队各自独立构建系统,系统首次对接时才暴露不兼容问题,此时双方已投入大量精力,进度已无余量吸收返工周期。API优先开发直接针对这一失败模式:API契约——系统间通信的正式规范——在提供方或消费方开始实现之前就已设计并达成一致。接口先行,实现随后。

API优先开发的实际含义

实践中,将要构建被他人消费的服务的团队,不是从内部数据模型或用户界面入手,而是从API规范开始——通常采用OpenAPI(前身为Swagger)格式。这份规范由提供方和消费方团队协作制定,成为双方的契约。契约达成后,双方可独立推进:提供方构建符合契约的实现;消费方基于契约开发,使用模拟服务器(mock server)模拟API响应,无需等待真实实现就绪。

API优先对Scrum团队的核心价值

四项核心收益对Scrum团队尤为重要:真正的并行开发(契约达成后,提供方和消费方团队可在各自迭代中同步工作,互不阻塞);更清晰的接口和更少的歧义(设计契约的过程迫使双方就接口行为进行精确对话,将通常作为实现bug出现的歧义化解于设计阶段);更便捷的测试与模拟(正式规范可生成模拟服务器并驱动自动化契约验证);以及未来灵活性(基于明确规范设计的API更易于版本化、扩展和文档化)。

将API优先融入迭代规划与微服务架构

API契约应被视为第零迭代或早期迭代的交付物。在生产API的用户故事完成定义中,API优先团队通常添加:相关端点已在OpenAPI规范中记录、规范已由至少一个消费方团队审阅、基于规范的模拟服务器已可用、自动化契约测试验证实现与规范一致。消费方驱动的契约测试(使用Pact等工具)进一步将传统集成测试模式倒置:不兼容性在提供方的构建流水线中被检测,而非在集成测试阶段。API优先与微服务架构天然契合——将接口先行、契约明确可测试、通过模拟实现并行工作的习惯推广到所有系统间接口,可让每一次集成都更清晰、更快速,意外更少。

XNM咨询与软件交付团队合作推进敏捷实践、技术治理和交付效能提升。了解更多关于我们的项目与计划交付服务。