当前位置:首页 > 计算机网络 > 网络与数据通信 > RESTful Web Services Cookbook中文版
出版社:电子工业出版社
出版日期:2011-9
ISBN:9787121143908
作者:Subbu Allamaraju
页数:299页
章节摘录
版权页:插图:在任何分布式的客户端/服务器环境中管理变更都是很困难的。在这样的环境中,客户端依赖于服务器能履行自己的承诺。RESFlul Web服务也不例外,对它们而言,这包括uRI、资源、结构体和表述的内容、它们的格式,以及每个资源的HTTP方法。直到您开始考虑向后兼容性(backward compatibility)之后,对服务器的变更好像都成了有益的了。变化是向后兼容的,在修改服务器时就无须升级客户端。客户端会忽略您升级了服务器这一事实,继续按原有方式进行调用,就好像什么变化都没发生过一样,当然这不包括服务器升级期间的不可用时间。还有一种兼容性被称为向前兼容性(forward compatibility),当有多个客户端和服务器在不同时间点升级时,这一点是很重要的。在这种情况下,较新的客户端可能会与老的服务器进行交互。向前兼容性的目的是保证较新的客户端能继续使用老的服务器,虽然功能有所减少,但不会出现问题。您的应用程序中仅需要考虑向后兼容性,还是需要同时考虑向后和向前兼容性取决于您的操作环境。本章描述的内容能帮助您处理好这两种兼容性。让您能够保持兼容性的特性是可扩展性,这是为未来的变化预留余地的设计过程。
媒体关注与评论
“无论您打算使用何种语言构建RESTfuI服务,本书都是一本极佳的指南。内容丰富、考虑周到,囊括了与服务设计与实现相关的很多最佳实践。” ——Eben Hewitt架构师 “Java SOA Cookbook”作者
内容概要
“无论您打算使用何种语言构建RESTful服务,本书都是一本极佳的指南。内容丰富、考虑周到,囊括了与服务设计与实现相关的很多最佳实践。”
——Eben Hewitt 架构师 “Java SOA Cookbook”作者
书籍目录
前言 i
第1章 使用统一接口 1
1.1 如何保持交互的可见性 2
1.2 何时需要权衡可见性 4
1.3 如何维护应用程序状态 6
1.4 如何在服务器端实现安全和幂等的方法 9
1.5 如何在客户端处理安全和幂等方法 12
1.6 何时使用get方法 13
1.7 何时使用post方法 15
1.8 如何使用post方法创建资源 17
1.9 何时使用put方法创建新资源 19
1.10 如何使用post方法实现异步任务 20
1.11 如何使用delete方法实现异步删除 23
1.12 何时使用自定义http方法 24
1.13 何时及如何使用自定义http标头 26
第2章 识别资源 29
2.1 如何从领域名词中识别资源 30
2.2 如何选择资源粒度 31
2.3 如何将资源组织为集合 32
.2.4 何时将资源合并为复合资源 35
2.5 如何支持计算或处理函数 37
2.6 何时及如何使用控制器来操作资源 40
第3章 设计表述 45
3.1 如何使用实体头来注解表述 46
3.2 如何解释实体头 50
3.3 如何避免字符编码不匹配 51
3.4 如何选择表述格式和媒体类型 52
3.5 如何设计xml表述 56
3.6 如何设计json表述 58
3.7 如何设计集合表述 59
3.8 如何保持同构的集合 61
3.9 如何在表述中使用可移植的数据格式 63
3.10 何时使用实体标识符 65
3.11 如何在表述中编码二进制数据 66
3.12 何时以及如何提供html表述 68
3.13 如何返回错误 70
3.14 如何在客户端处理错误 74
第4章 设计uri 77
4.1 如何设计uri 77
4.2 如何将uri用做模糊标识符 81
4.3 如何让客户端将uri视为模糊标识符 83
4.4 如何保持酷的uri 85
第5章 web链接 88
5.1 如何在xml表述中使用链接 89
5.2 如何在json表述中使用链接 92
5.3 何时以及如何使用链接标头 93
5.4 如何分配链接关系类型 94
5.5 如何使用链接来管理应用程序的流程 97
5.6 如何处理临时uri 101
5.7 何时以及如何使用uri模板 103
5.8 如何在客户端使用链接 105
第6章 atom和atompub 108
6.1 如何利用atom建模资源 109
6.2 何时使用atom 113
6.3 如何使用atompub服务和分类文件 117
6.4 如何针对feed和entry资源使用atompub 119
6.5 如何使用媒体资源 122
第7章 内容协商 125
7.1 如何标明客户端偏好 126
7.2 如何实现媒体类型协商 128
7.3 如何实现语言协商 129
7.4 如何实现字符编码协商 131
7.5 如何支持压缩 132
7.6 何时以及如何发送vary头 133
7.7 如何处理协商失败 134
7.8 如何使用代理驱动的内容协商 136
7.9 何时支持服务器驱动的协商 137
第8章 查询 139
8.1 如何针对查询设计uri 139
8.2 如何设计查询响应 142
8.3 如何支持有大量输入的查询请求 144
8.4 如何存储查询 146
第9章 web缓存 149
9.1 如何设置过期缓存头 150
9.2 何时设置过期缓存头 153
9.3 何时以及如何在客户端中使用过期缓存头 156
9.4 如何支持复合资源的缓存 157
9.5 如何保持新鲜且温暖的缓存 158
第10章 条件请求 161
10.1 如何生成last-modified和etag头 163
10.2 如何在服务器端实现条件get请求 164
10.3 如何从客户端提交条件get和head请求 167
10.4 如何在服务器端实现条件put请求 169
10.5 如何在服务器端实现条件delete请求 173
10.6 如何从客户端发起无条件get请求 175
10.7 如何从客户端提交条件put和delete请求 176
10.8 如何使post请求条件化 178
10.9 如何生成一次性uri 181
第11章 其他内容 184
11.1 如何复制资源 185
11.2 如何合并资源 187
11.3 如何移动资源 189
11.4 何时使用webdav方法 191
11.5 如何支持跨服务器的操作 193
11.6 如何获取资源的快照 195
11.7 如何撤销资源更新 198
11.8 如何为部分更新提炼资源 200
11.9 如何使用patch方法 203
11.10 如何批量处理相似的资源 206
11.11 如何触发批量操作 209
11.12 何时使用post来合并多个请求 211
11.13 如何支持批量请求 215
11.14 如何支持事务 217
第12章 安全 220
12.1 如何使用基本身份验证来验证客户端 221
12.2 如何使用摘要身份验证来验证客户端 224
12.3 如何使用三方oauth 226
12.4 如何使用两方oauth 232
12.5 如何处理uri中的敏感信息 235
12.6 如何维护表述的机密性与完整性 237
第13章 可扩展性与版本控制 239
13.1 如何维持uri的兼容性 240
13.2 如何维持xml和json表述的兼容性 242
13.3 如何扩展atom 245
13.4 如何维持链接的兼容性 249
13.5 如何实现支持可扩展性的客户端 250
13.6 何时需要版本化 251
13.7 如何版本化restful web服务 252
第14章 服务发现 256
14.1 如何编写restful web服务的文档 256
14.2 如何使用options 259
附录a 辅助读物 261
附录b rest概述 265
附录c http方法 268
附录d atom syndication format 273
附录e 链接关系类型 279
索引 287
编辑推荐
REST设计哲学激起了Web与企业应用开发者的无尽遐想,但用这种方式来开发真正的Web服务并非易事。《RESTful Web Services Cookbook(中文版)》包含了超过100个技巧。帮助您充分利用REST,HTTP和Web基础设施。无论使用何种编程语言和开发框架,您都将了解到如何为客户端/服务器应用设计满足性能、可扩展性、可靠性及安全目标的。RESTful Web服务。《RESTful Web Services Cookbook(中文版)》的每一节都包含一到两个问题描述,带有简单易学、步骤详尽的解决方案,还有使用HTTP请求与响应、XML、JSON和Atom片段的例子。您还将看到针对每个解决方案的实现指南,讨论其中的利弊和权衡。了解如何设计满足多种应用场景的资源,成功设计表述与URI,使用链接与链接标头来实现超文本约束,理解何时及如何使用Atom和AtomPub,为了支持缓存,该做什么,不该做什么,了解如何实现并发控制,处理涉及复制、合并、事务、批处理及部分更新的高级用例,保护Web服务,支持OAuth。Subbu Allamaraju,Yahoo!架构师。他设计了RESTful web服务的标准及实践,目前负责开发者平台的架构工作。Subbu之前就职于BEA System,Inc..开发Web服务及基于Java的软件。他参与了4本J2EE~H关书籍的编写,均由Wrox发行出版。
作者简介
《RESTful Web Services Cookbook(中文版)》从实践出发,涉及设计restful web服务的各个方面,通过问题描述、解决方案、问题讨论的形式在14个章节中详细讨论了统一接口、资源、表述、uri、链接、请求、缓存、安全等诸多内容。无论读者是否设计过restful web服务,具体使用哪种语言,都能在阅读过程中有所收获。《RESTful Web Services Cookbook(中文版)》也可作为手册,根据具体问题描述在书中查找解决办法。
图书封面
RESTful Web Services Cookbook中文版下载 精选章节试读 更多精彩书评