简而言之:一个实用的收集 API 能让客户端以清晰的方式请求数据、继续遍历、从故障中恢复,并了解已收集的内容。这些 REST API 技巧将每个服务器端契约与可靠的消费者必须实现的行为联系起来。
一个采集器检索了三页数据,在第四页时超时,并于次日早晨重新启动。它究竟是跳过记录、重复工作,还是安全地恢复,取决于早在超时发生之前就做出的决策。当 REST API 建议将这些决策作为生产者与消费者之间的具体契约来处理时,其价值便最为凸显。
本指南侧重于用于定期收集、同步或分析数据的 API。其目的并非解决关于 REST 的所有架构争议,而是确保在数据集变更、凭据过期、请求失败以及客户端在不同时间升级时,接口仍能保持可预测性。
对于每项设计选择,请考虑客户端必须持久化哪些信息,以及它能够安全推断出哪些信息。如果 next ,若未在文档中说明光标过期机制,则该字段本身并不足够。若客户端无法区分临时过载与无效输入,仅靠一条错误消息也不够。如果成功响应悄然改变了价格字段的含义,仅凭成功响应也不够。
下文的七个部分涵盖了资源契约、分页、故障处理、条件请求、访问控制、模式演进以及操作证明。它们还为使用非自己设计的 API 的开发人员提供了一份审查清单:先确定接口的保证内容,然后在数据收集计划中明确列出所有缺失的保证。




