作品简介

本书是《RESTful Web Services Cookbook》的中文翻译版。本书从实践出发,涉及设计RESTful Web服务的各个方面,通过问题描述、解决方案、问题讨论的形式在14个章节中详细讨论了统一接口、资源、表述、URI、链接、请求、缓存、安全等诸多内容。无论读者是否设计过RESTful Web服务,具体使用哪种语言,都能在阅读过程中有所收获。本书也可作为手册,根据具体问题描述在书中查找解决办法。

沙布·阿拉马拉尤(Subbu Allamaraju),是Yahoo!的架构师,曾负责开发设计RESTful Web服务的标准及实践,目前负责为某些面向开发者的平台做架构设计。在此之前,他在BEA Systems,Inc.开发Web服务及基于Java的软件,并参与制定JCP和OASIS标准。Subbu参与了4本J2EE书籍的编写,均由Wrox发行出版。想对他有更深入的了解,请访问http://www.subbu.org

作品目录

  • O'Reilly Media,Inc.介绍
  • 推荐序
  • 译者序
  • 前言
  • 第1章 使用统一接口
  • 1.1 如何保持交互的可见性
  • 1.2 何时需要权衡可见性
  • 1.3 如何维护应用程序状态
  • 1.4 如何在服务器端实现安全和幂等的方法
  • 1.5 如何在客户端处理安全和幂等方法
  • 1.6 何时使用GET方法
  • 1.7 何时使用POST方法
  • 1.8 如何使用POST方法创建资源
  • 1.9 何时使用PUT方法创建新资源
  • 1.10 如何使用POST方法实现异步任务
  • 1.11 如何使用DELETE方法实现异步删除
  • 1.12 何时使用自定义HTTP方法
  • 1.13 何时及如何使用自定义HTTP标头
  • 第2章 识别资源
  • 2.1 如何从领域名词中识别资源
  • 2.2 如何选择资源粒度
  • 2.3 如何将资源组织为集合
  • 2.4 何时将资源合并为复合资源
  • 2.5 如何支持计算或处理函数
  • 2.6 何时及如何使用控制器来操作资源
  • 第3章 设计表述
  • 3.1 如何使用实体头来注解表述
  • 3.2 如何解释实体头
  • 3.3 如何避免字符编码不匹配
  • 3.4 如何选择表述格式和媒体类型
  • 3.5 如何设计XML表述
  • 3.6 如何设计JSON表述
  • 3.7 如何设计集合表述
  • 3.8 如何保持同构的集合
  • 3.9 如何在表述中使用可移植的数据格式
  • 3.10 何时使用实体标识符
  • 3.11 如何在表述中编码二进制数据
  • 3.12 何时以及如何提供HTML表述
  • 3.13 如何返回错误
  • 3.14 如何在客户端处理错误
  • 第4章 设计URI
  • 4.1 如何设计URI
  • 4.2 如何将URI用做模糊标识符
  • 4.3 如何让客户端将URI视为模糊标识符
  • 4.4 如何保持酷的URI
  • 第5章 Web链接
  • 5.1 如何在XML表述中使用链接
  • 5.2 如何在JSON表述中使用链接
  • 5.3 何时以及如何使用链接标头
  • 5.4 如何分配链接关系类型
  • 5.5 如何使用链接来管理应用程序的流程
  • 5.6 如何处理临时URI
  • 5.7 何时以及如何使用URI模板
  • 5.8 如何在客户端使用链接
  • 第6章 Atom和AtomPub
  • 6.1 如何利用Atom建模资源
  • 6.2 何时使用Atom
  • 6.3 如何使用AtomPub服务和分类文档
  • 6.4 如何针对Feed和Entry资源使用AtomPub
  • 6.5 如何使用媒体资源
  • 第7章 内容协商
  • 7.1 如何标明客户端偏好
  • 7.2 如何实现媒体类型协商
  • 7.3 如何实现语言协商
  • 7.4 如何实现字符编码协商
  • 7.5 如何支持压缩
  • 7.6 何时以及如何发送Vary头
  • 7.7 如何处理协商失败
  • 7.8 如何使用代理驱动的内容协商
  • 7.9 何时支持服务器驱动的协商
  • 第8章 查询
  • 8.1 如何针对查询设计URI
  • 8.2 如何设计查询响应
  • 8.3 如何支持有大量输入的查询请求
  • 8.4 如何存储查询
  • 第9章 Web缓存
  • 9.1 如何设置过期缓存头
  • 9.2 何时设置过期缓存头
  • 9.3 何时以及如何在客户端使用过期缓存头
  • 9.4 如何支持复合资源的缓存
  • 9.5 如何保持新鲜且温暖的缓存
  • 第10章 条件请求
  • 10.1 如何生成Last-Modified和ETag头
  • 10.2 如何在服务器端实现条件GET请求
  • 10.3 如何从客户端提交条件 GET和 HEAD请求
  • 10.4 如何在服务器端实现条件PUT请求
  • 10.5 如何在服务器端实现条件DELETE请求
  • 10.6 如何从客户端发起无条件GET请求
  • 10.7 如何从客户端提交条件 PUT 和 DELETE请求
  • 10.8 如何使POST请求条件化
  • 10.9 如何生成一次性URI
  • 第11章 其他内容
  • 11.1 如何复制资源
  • 11.2 如何合并资源
  • 11.3 如何移动资源
  • 11.4 何时使用WebDAV方法
  • 11.5 如何支持跨服务器的操作
  • 11.6 如何获取资源的快照
  • 11.7 如何撤销资源更新
  • 11.8 如何为部分更新提炼资源
  • 11.9 如何使用PATCH方法
  • 11.10 如何批量处理相似的资源
  • 11.11 如何触发批量操作
  • 11.12 何时使用POST来合并多个请求
  • 11.13 如何支持批量请求
  • 11.14 如何支持事务
  • 第12章 安全
  • 12.1 如何使用基本身份验证来验证客户端
  • 12.2 如何使用摘要身份验证来验证客户端
  • 12.3 如何使用三方OAuth
  • 12.4 如何使用两方OAuth
  • 12.5 如何处理URI中的敏感信息
  • 12.6 如何维护表述的机密性与完整性
  • 第13章 可扩展性与版本控制
  • 13.1 如何维持URI的兼容性
  • 13.2 如何维持XML和JSON表述的兼容性
  • 13.3 如何扩展Atom
  • 13.4 如何维持链接的兼容性
  • 13.5 如何实现支持可扩展性的客户端
  • 13.6 何时需要版本化
  • 13.7 如何版本化RESTful Web服务
  • 第14章 服务发现
  • 14.1 如何编写RESTful Web服务的文档
  • 14.2 如何使用OPTIONS
  • 附录A 辅助读物
  • 附录B REST概述
  • 附录C HTTP方法
  • 附录D Atom Syndication Format
  • 附录E 链接关系类型
  • 关于作者
  • 封面介绍
展开全部