RESTful Web API模式和实践经典实例
RESTful Web API模式和实践经典实例
Mike Amundsen
李辉 译
出版时间:2026年05月
页数:486
“Amundsen提供了一份极具价值的资源,用简明易懂的方式探讨了常见且复杂的API设计选择。他引导读者充分挖掘HTTP协议与超媒体的力量。任何想要设计出经得起时间考验、可持续演化的Web API的人,都应该阅读此书。”
——James Higginbotham
《Web API Design》作者,LaunchAny执行级API顾问

如今,许多组织编排并维护着依赖外部服务运行的应用程序。在这些公司中,软件设计师、开发人员和架构师通常致力于协调和维护基于现有服务API的应用程序,其中包括了运行在其生态系统之外的第三方服务。本书提供了经过验证的配方,帮助你的网络中的各个部分协同工作。
本书作者提供了行之有效的分步方案,指导了如何发现、连接并维护由他人设计和构建的应用。无论是在开发面向用户的移动应用,还是在构建高性能的机器对机器的解决方案,本指南都将向你展示整合各个API的规则、流程、命令和协议,这些是将它们安全、可扩展且可靠地协同工作的黏合剂。
● 设计与构建可在开放网络上成功交互的服务接口。
● 通过共享语义来提高API的互操作性。
● 构建可适应服务演进而不致崩溃的客户端应用。
● 创建支持点对点交互的弹性且可靠的API。
● 使用基于Web的API注册中心,实现运行时的“发现与绑定”机制,从而实时管理外部依赖。
● 实施稳定的工作流,确保复杂的多服务任务可以一致地执行。
  1. 前言
  2. 第一部分 理解RESTful超媒体
  3. 第1章 RESTful Web API介绍
  4. 1.1 RESTful Web API是什么
  5. 1.2 为何选择超媒体
  6. 1.3 Web可扩展服务的共享原则
  7. 第2章 用超媒体思维进行思考与设计
  8. 2.1 使用超媒体设计奠定基础
  9. 2.2 使用超媒体客户端提升弹性
  10. 2.3 使用超媒体服务提升稳定与可修改性
  11. 2.4 支持分布式数据
  12. 2.5 使用超媒体工作流提高可扩展性
  13. 第二部分 超媒体技巧手册
  14. 第3章 超媒体设计
  15. 3.1 通过注册媒体类型实现互操作性
  16. 3.2 通过结构化媒体类型确保未来兼容性
  17. 3.3 通过发布词汇表实现领域特性的共享
  18. 3.4 通过语义配置文件描述问题空间
  19. 3.5 通过嵌入式超媒体在运行时表达操作
  20. 3.6 通过幂等操作设计一致的数据写入
  21. 3.7 通过服务间状态转移实现互操作性
  22. 3.8 设计可重复的操作
  23. 3.9 设计可撤销的操作
  24. 3.10 设计可扩展的消息
  25. 3.11 设计可修改的接口
  26. 第4章 超媒体客户端
  27. 4.1 限制硬编码URL的使用
  28. 4.2 让客户端具备HTTP感知能力
  29. 4.3 通过以消息为中心的实现编写有弹性的客户端
  30. 4.4 编写能理解词汇表配置文件的有效客户端
  31. 4.5 在运行时协商配置文件支持
  32. 4.6 在运行时管理表述格式
  33. 4.7 使用模式文档作为消息元数据的来源
  34. 4.8 响应中的每个重要元素都需要标识符
  35. 4.9 依赖响应中的超媒体控件
  36. 4.10 为非超媒体服务支持链接和表单
  37. 4.11 在运行时验证数据属性
  38. 4.12 使用文档模式验证出站消息
  39. 4.13 使用文档查询验证入站消息
  40. 4.14 验证传入数据
  41. 4.15 维护自身状态
  42. 4.16 心怀目标
  43. 第5章 超媒体服务
  44. 5.1 至少发布一个稳定的URL
  45. 5.2 防止内部模型泄漏
  46. 5.3 将内部模型转换为外部消息
  47. 5.4 将内部功能表达为外部操作
  48. 5.5 声明对客户端响应偏好的支持
  49. 5.6 支持HTTP内容协商
  50. 5.7 为机器客户端发布完整的词汇表
  51. 5.8 以标准格式支持共享词汇表
  52. 5.9 发布服务定义文档
  53. 5.10 发布API元数据
  54. 5.11 支持服务健康监测
  55. 5.12 标准化错误报告
  56. 5.13 通过运行时服务注册表提升服务可发现性
  57. 5.14 通过客户端提供的标识符提高吞吐量
  58. 5.15 通过幂等创建提升可靠性
  59. 5.16 为依赖服务提供运行时回退策略
  60. 5.17 使用语义代理访问不合规服务
  61. 第6章 分布式数据
  62. 6.1 隐藏数据存储内部实现
  63. 6.2 让所有变更具备幂等性
  64. 6.3 对外部操作隐藏内部数据关系
  65. 6.4 利用HTTP URL支持“包含”和“与”查询
  66. 6.5 返回查询响应的元数据
  67. 6.6 以数据为中心的查询:是返回HTTP 200还是HTTP 400
  68. 6.7 使用媒体类型进行数据查询
  69. 6.8 忽略未知数据字段
  70. 6.9 通过缓存指令提升性能
  71. 6.10 在生产环境中修改数据模型
  72. 6.11 扩展远程数据存储
  73. 6.12 限制过大的响应
  74. 6.13 使用透传代理进行数据交换
  75. 第7章 超媒体工作流
  76. 7.1 设计符合工作流规范的服务
  77. 7.2 支持工作流的状态共享
  78. 7.3 以代码形式描述工作流
  79. 7.4 以DSL描述工作流
  80. 7.5 以文档形式描述工作流
  81. 7.6 支持RESTful作业控制语言
  82. 7.7 为工作流暴露进度资源
  83. 7.8 返回所有相关操作
  84. 7.9 返回最近使用的资源
  85. 7.10 支持有状态的在制品
  86. 7.11 启用标准列表导航
  87. 7.12 支持部分表单提交
  88. 7.13 使用状态监视实现客户端驱动的工作流
  89. 7.14 通过存储的重放优化查询
  90. 7.15 对未完成工作使用202 Accepted进行同步回复
  91. 7.16 通过自动重试进行短期修复
  92. 7.17 支持本地撤销或回滚
  93. 7.18 请求帮助
  94. 7.19 通过队列和集群扩展工作流
  95. 7.20 使用工作流代理整合非合规服务
  96. 第8章 结束语
  97. 8.1 应用这些技巧
  98. 8.2 改造现有服务
  99. 8.3 其他资源
  100. 8.4 后续步骤
  101. 附录A RESTful Web API指导原则
  102. 附录B 补充阅读
  103. 附录C 相关标准
  104. 附录D 使用HyperCLI
  105. 作者介绍
  106. 动物介绍
书名:RESTful Web API模式和实践经典实例
作者:Mike Amundsen
译者:李辉 译
国内出版社:中国电力出版社
出版时间:2026年05月
页数:486
书号:978-7-5239-0532-6
原版书书名:RESTful Web API Patterns and Practices Cookbook
原版书出版商:O'Reilly Media
Mike Amundsen
 
Mike Amundsen是API学院的首席架构师,负责帮助各个公司发展API业务。
Mike Amundsen 是包括《Building Hypermedia APIs with HTML5 and Node》(O’Reilly) 在内的十几本为人所称道的技术图书的作者。
Mike Amundsen是国际知名的作家与演讲者,长期活跃于网络架构、Web开发及技术与社会交叉领域的研究与咨询工作。
 
 
本书封面动物是一只大宽尾獴(学名:Galidictis grandidieri),其名字源自十九世纪六十年代多次前往马达加斯加考察的法国博物学家兼探险家阿尔弗雷德·格朗迪迪(Alfred Grandidier)。目前在马达加斯加共有六种已知獴类,而大宽尾獴仅分布于该岛西南部齐马南佩措察湖(Lac Tsimanampetsotsa)一带狭小且偏远的亚热带地区,那里的地形险峻,连研究者也难以抵达。
大宽尾獴又被称为巨纹獴,体长约三十二至四十厘米,尾长二十八至三十厘米,浅褐色的毛皮上分布着八条宽阔的深色条纹。为躲避当地的酷热气候,它们逐渐进化为夜行性动物。这种食肉动物的完整食谱尚不明晰,但已知它们会捕食无脊椎生物。它们的平均寿命仍未被确定,不过有记录显示,它们全年繁殖,并以一夫一妻制的形式结伴生活。
如今大宽尾獴已濒临灭绝,其栖息地同样面临严重威胁。许多出现在O’Reilly封面上的动物都是濒危动物,他们中的每一个对世界都很重要。
购买选项
定价:128.00元
书号:978-7-5239-0532-6
出版社:中国电力出版社