FDE Times 数据在招 FDE 职位 862▼55 近 7 天在招职位数的变化(同口径比较):不计入本周新开始追踪的公司的职位近 7 天新增 70在招公司 180支持远程 24%美国薪资中位数 $200k招聘最多 Palantir 95
ENVI

前线部署工程师(FDE)的专业媒体

书籍与课程

做集成的工程师,最该读这本 API 设计书

这本 2018 年的 O'Reilly 书大半篇幅讲扩展与变更管理,能帮你看懂客户 API 为何如此、会在哪里出问题。

封面: Designing Web APIs: Building APIs That Developers Love
Designing Web APIs: Building APIs That Developers Love · Brenda Jin · 封面图片:Open Library
分享微博

要点速览

  • O'Reilly 2018 年出版,共 11 章外加一个工作表附录,从什么是 API 一直讲到扩展、变更管理和开发者计划
  • FDE 很少从零设计 API,却天天在读客户的 API;这本书让你理解设计者的思路
  • 先读 API Paradigms、安全相关内容、Scaling APIs、变更管理相关内容和工作表附录;开发者计划可以以后再看
大数字图:在每分钟 60 次请求的限制下,单次同步 50,000 条订单、每页 100 条,需要 500 次请求,耗时约 8 分 20 秒。若 5% 的请求失败需重跑,会多出 25 次请求,约多 25 秒。一条按分钟分段的横条在末尾用一小段表示重跑部分。
文中的假设示例:客户 API 有请求限制时,提前估算同步时间。来源:文中的示意计算。

Designing Web APIs 的目录共 11 章:从“What’s an API?”开始,经过安全和设计最佳实践,第 6 章转向 Scaling APIs(API 扩展),随后讲变更管理和开发者计划。换句话说,这本书很大一部分讲的是 API 有了真实用户之后的事。

对前线部署工程师(FDE)来说,这部分最值得花钱。你很少需要从零设计 API。更常见的情况是:面前摆着一个经过三代团队之手的客户 API,你得在演示截止日期前把自己的系统接上去。

这本书是写给另一方的,也就是构建和运营 API 的人。但站在集成方的角度读,它能帮你理解客户的 API 为什么长成这样,并预判它会在哪里出问题。

这是一本什么书?

全名是 Designing Web APIs: Building APIs That Developers Love,作者 Brenda Jin、Saurabh Sahni 和 Amir Shevat,O’Reilly Media 于 2018 年出版。平装本(ISBN 9781492026921)共 232 页;部分图书馆记录因版本不同,页数有出入。目标读者是开发者、架构师和技术负责人。

书的简介坦言,打造一个被广泛使用的 API 并培育繁荣的开发者生态非常困难。书中有构建 API 并在生产环境中运行的动手练习,还有工作表、检查清单,以及来自 Slack、Stripe、Facebook、Microsoft、Cloudinary、Oracle 和 GitHub 的案例。附录 A 的标题是 API Design Worksheets(API 设计工作表)。

由于出版于 2018 年,应把它当作一本讲思路的书,而不是工具参考手册。设计 API 时提问的方式,变化远比工具慢。

做集成的人,为什么要读写给设计者的书?

你在客户现场遇到的每个 API,都是一连串决策留下的痕迹。曾经有人选定了范式,选择了安全模型,设定了负载限制,之后还得在不影响现有客户端的前提下修改 API。这本书的目录正好依次覆盖这几个阶段:范式、安全、扩展、变更管理。

一旦知道设计者在每个阶段要权衡什么,你读客户 API 文档的方式就会不同。你不再只问哪个端点返回哪些数据,而会开始问:他们做了哪些取舍,这些取舍的代价会落在你集成的哪个环节。

带到客户现场的三个思路

第一,范式决定了 API 的形态。书中把 API Paradigms(API 范式)一章紧接在定义 API 的章节之后,其中一个目标就是区分请求-响应式 API 和事件驱动式 API,包括 WebHooks 和 WebSockets。

在客户现场,一开始就判断准 API 风格,能避免把自己熟悉的模型硬套到一个按另一套逻辑构建的系统上。

第二,扩展是一个必须提前算出来的数字。第 6 章专门有 Paginating APIs(分页)和 Rate-Limiting APIs(限流)两节。假设客户需要同步 50,000 条订单,API 每页返回 100 条记录、每分钟允许 60 次请求:一次完整同步需要 500 次请求,大约 8 分 20 秒。

这还是最理想的情况。如果 5% 的请求失败需要重跑,就要多出 25 次请求,大约再多 25 秒,而且每次重试都在消耗本该留给新请求的同一份配额。现在自己改改参数,看看数字怎么变:

假设场景 请求数 最短时间
每页 100 条,每分钟 60 次请求 500 8 分 20 秒
每页 1,000 条,每分钟 60 次请求 50 50 秒
每页 100 条,每分钟 10 次请求 500 50 分钟
每页 100 条,每分钟 10 次请求,5% 重试 525 52 分 30 秒

关键在第三行。同样的数据量,仅仅配额收紧,就足以让“近实时”的承诺落空。更大的页面能缩短时间,但每次响应更重,一旦失败要重新加载的数据也更多。这些要在演示之前弄清楚,而不是演示时才发现。

第三,每次 API 版本变更,都可能让集成失效。书中专门有一章讲变更管理,练习部分一直做到在生产环境中运行 API。对 FDE 来说,阅读客户的版本历史和弃用策略,应该是第一周的任务。

集成方常犯的错误

最常见的错误是估算同步时间时忘了算重试。失败的请求同样消耗配额,仓促重跑可能让任务陷入被限流的循环,越重试越慢。

第二个错误是默认所有 API 都是 REST。如果客户通过 WebHooks 或 WebSockets 推送数据,你的架构就得接收事件,而不是轮询。这个问题判断错了,整个适配层都得重写。

第三个错误是把认证和版本管理当成一次性工作。令牌过期和版本弃用往往恰好在没人值班时引发故障,所以从第一天起就要把这两项写进运维文档。

按什么顺序读?

没必要从头读到尾。先读 API Paradigms 和安全相关内容,带着两个问题:这是哪种 API?认证怎么做、由谁授权访问?接下来读 Scaling APIs 和变更管理一章,从中找请求限制、页面大小和旧版本弃用时间表的答案。

附录 A 随时放在手边。书中把这些工作表作为 API 设计流程的模板;你可以把同一套模板当作调研清单的框架,只需把视角从设计者换成提问者。

最后做个练习:挑一个即将对接的 API,参照附录 A 把设计流程变成模板的方式,做一张一页纸的表,分四格:API 风格、安全、负载限制和版本管理。

在负载限制一格里,按上表的方式写出同步时间的计算,把重试算进去。带着这张表去参加第一次调研会议,标出客户暂时答不上来的格子。

设计最佳实践可以留到以后,等你需要对 API 提出修改建议或构建适配层时再读。开发者计划的内容,适合客户打算向合作伙伴开放 API 时,或者你转向更贴近产品的岗位时再看。

写进简历

如果只写“API 集成”,读懂别人 API 的能力很难体现出来。要具体写明你处理过哪种请求限制或哪次版本升级,结果如何,比如重新计算页面大小后,同步任务耗时变成了多少。

面试时,范式、安全、负载限制和版本管理这四个问题,是讲述一次棘手集成经历的好框架:你问了什么,发现了什么,做了什么决定。

好的开发者会读客户的 API 文档。好的 FDE 会读出写文档的人没写的东西。

这篇文章对你有帮助吗?

4 个信源
路线图上的下一篇 · 阶段 2: 全栈工程能力不到 13 小时的 AWS 课程,帮你跟上客户 IT 团队2025 年 6 月改版后,这门入门课新增 AI 与机器学习内容,正是 FDE 当下交付的部署类型。