跳过正文
  1. 文章/

OpenAPI 优先开发:让前后端并肩推进

· loading · loading ·
仁才德
作者
仁才德
居住在韩国首尔的领导者和软件工程师
OpenApi - 这篇文章属于一个选集。
§ 1: 本文

我见过的最靠谱的进度杀手,不是什么高难度的工程问题,而是前端干坐着,等一个“马上就好”的接口。我们在公司最后定下的解法很无聊,但很管用:写代码之前,先用 OpenAPI 把接口契约谈妥。

等待的游戏
#

传统流程是串行的:后端先设计并实现 API,等接口真正能跑了,前端才开始对接。后端的每一次延误都会直接砸到前端的日程表上,而发布日期恰恰写在前端的日程表里。

契约在前,代码在后
#

按 schema 优先的流程,两边几乎可以同时起跑。在一行代码都不存在的时候,先把 API 的结构写进 OpenAPI schema——每个端点、请求和响应模型、认证方式、错误码。这份文档就是前后端之间的合同。

回报来得很快。功能还没开工,所有人对它的理解就已经一致。后端还在实现,前端就能开始搭 UI。变更也转得更快,因为只有一份公认的事实来源需要更新。而且 schema 可以直接生成模拟服务器,在一个真实接口都没有的时候,前端测试就能开跑。

实际怎么跑
#

  1. 收集需求,跟做任何东西一样。
  2. 设计 schema:端点、请求/响应模型、认证、错误码。
  3. 让前端和后端一起评审——契约的价值就体现在这一步。
  4. 生成模拟服务器(Swagger 和 Postman 都能做),前端先对着它集成。
  5. 后端照着同一份 schema 实现真实接口。
  6. 接口做好一个就替换一个模拟端点,持续测试,确保契约没被破坏。
  7. 保持沟通。schema 是活文档,不是石碑。

要付的代价
#

这套流程不是免费的。提前写一份周全的 schema 要花实打实的时间。需求一变,得先改 schema,涟漪会波及两个团队。另外每个人都得对 OpenAPI 和配套工具有基本的手感。

即便如此,我还没见过这笔前期投入输给它省下的集成混乱。前端第一天就能开工,而争论发生在文档上,而不是发生在挂掉的构建里。

OpenApi - 这篇文章属于一个选集。
§ 1: 本文