跳转至

延伸阅读 — 原书的书单,以及我们的取舍建议

这一章讲什么: 原书正文到第 7 章为止,第八章只有短短三句话加一张书单—— 它的定位是「旅程的延伸」:REST 的设计故事没有写完,这份按主题分组的清单替读者指了 继续深入的五个方向1。本章我们把整张书单搬过来,补上每一组补的是前七章的哪块空白, 再给先读顺序的取舍建议。读完前面任何一章,都可以来这里找下一步读什么。

1. 顶层全景:书单的五组地图

原书把书分成五组,对应的正是前七章各自的「没讲透」:

  前七章的空白              书单补位的书
  ─────────────────────────────────────────────
  REST 的出处(第 01 章)   → Fielding 博士论文原著 + SOA
  历史细节(第 01 章)      → CGI 与 EJB 的专著
  设计手艺(第 02–04 章)   → RESTful Web Services / API Design Patterns 等
  状态管理(第 05 章)      → Hypermedia Systems
  安全攻防(第 06 章)      → API Security in Action / OWASP Top 10
  性能规模(第 07 章)      → DDIA / High Performance Browser Networking

  图说:书单不是装饰,是「这本书没展开的部分去别处找」的索引。

2. 书单逐组过一遍(含我们的取舍)

基础与历史

  • 《Architectural Styles and the Design of Network-based Software Architectures》——Roy Fielding 的博士论文原著,REST 的出处本身。第 01 章讲的六条约束在这里是完整推导;书里那句「除初始 URI 外无先验知识」也出自它。想读 REST「原教旨」就从这篇开始,全文公开免费2。
  • 《SOA: Principles of Service Design》(Thomas Erl)——SOAP 那一章的另一半故事:面向服务的架构在企业内网的真实实践。
  • 《CGI Programming with Perl》 与 《Enterprise JavaBeans 3.1》——第 01 章两代的细节出处。今天只为考古而读;除非你要维护老系统,可以跳过。

设计手艺

  • 《RESTful Web Services》(Leonard Richardson & Sam Ruby)——REST API 设计领域的经典,成熟度模型(Richardson Maturity Model)的出处;第 02–04 章的规矩在这本书里有更深的论证。
  • 《API Design Patterns》(JJ Geewax)——设计模式集,补第 03/04 章没展开的判据(动作型端点怎么建模、一次操作一大批数据的接口、长操作)。
  • 《The Design of Web APIs》(Arnaud Lauret)与 《Designing Web APIs》(Brenda Jin 等)——两本实战向设计书,任选其一。
  • 《Design and Build Great Web APIs》(Mike Amundsen)与博客 《API Versioning Has No "Right Way"》(Phil Sturgeon)——补第 02 章版本策略之争的两派声音。

标准与规范

这一组是原书全书的引用底座:RFC 3875(CGI)、W3C SOAP 1.2、RFC 3986(URI 语法)、RFC 5789(PATCH)、RFC 7232(条件请求)、RFC 8288(Web Linking)、HAL 与 JSON:API 规范、HTTP/2 与 HTTP/3 的 RFC 9113/9114、微软的 REST API 版本指南。用法:不当书读,当字典查——写实现卡住了再翻对应 RFC3。

状态管理与架构

  • 《Hypermedia Systems》(Carson Gross 等)——第 05 章 HATEOAS 的深入版,也是 htmx 作者对「超媒体驱动」这一路的全面陈述;对我们在第 05 章边界里提的「为什么业界很少做 HATEOAS」之问,这本书给的是正方最强论证。
  • 《Microservices Patterns》(Chris Richardson)——补第 07 章只给理念没给做法的缺口:服务拆分、saga、API 网关、事务消息,全在这里。

安全

  • 《API Security in Action》(Neil Madden)——补第 06 章最大空白(没有攻防)的第一选择;OWASP API Security Top 10 是免费公开的清单,应当作「上线前自查表」用。
  • 《OAuth 2.0 Simplified》(Aaron Parecki)、NIST SP 800-162(RBAC vs ABAC)、《Bulletproof TLS and PKI》、NIST 零信任架构 SP 800-207——分别补授权细节、加密工程、架构理念。

性能与规模

  • 《Designing Data-Intensive Applications》(Martin Kleppmann)——第 07 章视野边界之外的第一补:数据库层的扩展(分片、复制、一致性)整本书的重心,每个做后端的人都该读。
  • 《High Performance Browser Networking》(Ilya Grigorik)——浏览器侧的网络栈,补「客户端这一半」的性能视角。
  • 《The Art of Scalability》、AWS Well-Architected 性能支柱、Kubernetes 自动扩缩容文档——运维与云侧的延伸。

3. 我们的判断

判断(我们的,不是书里的): 这份书单的价值不在「全」(五组四十来条,深浅不一),而在分组逻辑——它把「这本书没展开的部分」老老实实标了出来,等于替读者画了一张缺口地图。 真要往下读,我们给三个优先:Fielding 论文(半天能读完,校准概念)、DDIA(补第 07 章视野)、OWASP API Top 10(补第 06 章攻防,免费)。 如果错,会错在: 我们的优先级按「补空白」排;如果读者的目标是系统学习 API 设计手艺,《API Design Patterns》和《The Design of Web APIs》的优先级应该更高——那是另一个目标的排序。

4. 边界与局限

  • 原书书单只列条目不给评注——哪本深哪本浅、先读哪本,原书一个字没写;上面的取舍建议全是我们的补充,不是书里的内容。
  • 书单截至 2026 年成书;其中《Hacking APIs》《Let's Encrypt 文档》这类在线资源会更新,按书目找时以最新版为准。

5. 可带走的

  1. 书单的正确用法是「缺口索引」:哪章觉得浅,就到对应组里找书。
  2. 三个优先:Fielding 论文(概念校准)、DDIA(性能规模的视野)、OWASP Top 10(安全攻防自查)。
  3. RFC 组当字典查,别当书读。
  4. 考古类(CGI/EJB 专著)只值维护老系统的人读。

6. 原文地图

主题 原书章 原文位置
本章定位 Further Readings text/15-fm-afterword.txt:35(搜「extension」) · :38(搜「continues to unfold」)
基础与历史组 Further Readings text/15-fm-afterword.txt:48(搜「Architectural Styles」) · :59(搜「CGI Programming with Perl」) · :62(搜「Enterprise JavaBeans」)
设计组 Further Readings text/15-fm-afterword.txt:70(搜「RESTful Web Services」) · :76(搜「API Design Patterns」) · :79(搜「The Design of Web APIs」)
标准组 Further Readings text/15-fm-afterword.txt:90(搜「RFC 3875」) · :96(搜「RFC 3986」) · :102(搜「RFC 5789」) · :105(搜「RFC 7232」) · :111(搜「HAL」) · :117(搜「HTTP/2」)
版本策略组 Further Readings text/15-fm-afterword.txt:125(搜「Amundsen」) · :128(搜「No "Right Way"」)
状态管理/架构组 Further Readings text/15-fm-afterword.txt:160(搜「Hypermedia Systems」) · :163(搜「Microservices Patterns」)
安全组 Further Readings text/15-fm-afterword.txt:171(搜「API Security in Action」) · :174(搜「OWASP」) · :182(搜「OAuth 2.0 Simplified」) · :185(搜「NIST SP 800-162」)
性能组 Further Readings text/15-fm-afterword.txt:226(搜「Mobile Web Performance」) · :229(搜「Designing Data-Intensive」) · :232(搜「High Performance Browser Networking」)

  1. 出处:「CHAPTER 8 Further Readings」第 35 段(text/15-fm-afterword.txt:35,搜「extension」)。原文:「This chapter serves as an extension through a carefully curated selection of books for further reading... expands into specialized areas of REST」。 ↩

  2. 出处:「CHAPTER 8 Further Readings」第 48 段(text/15-fm-afterword.txt:48,搜「Architectural Styles and the Design of Network-Based Software Architectures」)。Fielding 论文全文公开——补充(不在书里,来自通用知识):该论文可在 Fielding 个人站点免费获取。 ↩

  3. 出处:「CHAPTER 8 Further Readings」第 90–117 段(text/15-fm-afterword.txt:90,搜「RFC 3875」;:117,搜「RFC 9113」)。「当字典查」是我们的使用建议,不是原书的说法。 ↩