延伸阅读 — 原书的书单,以及我们的取舍建议
延伸阅读 — 原书的书单,以及我们的取舍建议
这一章讲什么: 原书正文到第 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. 可带走的
- 书单的正确用法是「缺口索引」:哪章觉得浅,就到对应组里找书。
- 三个优先:Fielding 论文(概念校准)、DDIA(性能规模的视野)、OWASP Top 10(安全攻防自查)。
- RFC 组当字典查,别当书读。
- 考古类(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」) |
Footnotes
-
出处:「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」。 ↩ -
出处:「CHAPTER 8 Further Readings」第 48 段(
text/15-fm-afterword.txt:48,搜「Architectural Styles and the Design of Network-Based Software Architectures」)。Fielding 论文全文公开——补充(不在书里,来自通用知识):该论文可在 Fielding 个人站点免费获取。 ↩ -
出处:「CHAPTER 8 Further Readings」第 90–117 段(
text/15-fm-afterword.txt:90,搜「RFC 3875」;:117,搜「RFC 9113」)。「当字典查」是我们的使用建议,不是原书的说法。 ↩