书籍详情

RESTful Web Clients:基于超媒体的可复用客户端

RESTful Web Clients:基于超媒体的可复用客户端

作者:(美)Mike Amundsen(迈克·阿蒙森)

出版社:电子工业出版社

出版时间:2018-07-01

ISBN:9787121337581

定价:¥99.00

购买这本书可以去
内容简介
  Web开发领域的REST运动已经进行了很多年了,在REST的Richardson成熟度模型提出后,第3级——HATEOAS的应用——仍然没有得到广泛应用。事实上,其中一个难点在于客户端如何支持HATEOAS。之前很多REST相关书籍聚焦于如何打造服务端的RESTful API,本书则着重研究RESTful客户端,介绍了如何把一个针对服务端规约硬编码的定制客户端重构为一个支持HATEOAS的通用客户端,并提供了多格式支持、超媒体类型、版本化、微服务等相关问题的全面指导。本书附有所有样例代码的GitHub地址,方便读者快速理解和实践。本书适合Web应用开发者,尤其适合希望Web应用程序的服务端与客户端能够独立演化的Web架构师。
作者简介
  作为国际知名的作家和演说家,Mike Amundsen在全球各地咨询和研讨网络架构、Web开发和其他议题。而作为CA Technologies API学院的架构总监,他与公司致力于提供Web API方面的洞见,以便可以限度地利用面向消费者和企业的Web API的机会。曾著,毕业于北京大学,互爱(北京)科技股份有限公司技术副总裁。徐必涛,霓风网络科技有限公司软件架构师,曾任ThoughtWorks高级软件工程师、DevOps咨询师。
目录
前言  xx
开场:嗯,那是一次有趣的旅行,不是吗  xxviii
Bob、Carol 和BigCo 公司  xxx
 
第1 章 从HTML 到简单Web API 1
任务处理系统(TPS)Web 应用 4
来自服务器的HTML 5
将通用Web 浏览器作为客户端 9
评价 9
Task 服务Web API 10
Web API 的常规实践 10
设计TPS Web API 11
实现TPS Web API18
评价 24
总结 25
参考资料 26
 
第2 章 JSON 客户端 29
JSON Web API 客户端 30
Objects 31
Addresses 34
Actions 35
小结 38
JSON 单页面客户端38
HTML 容器 38
顶层解析循环 40
Objects、Addresses 和Actions 41
小结 47
应对变化 47
添加字段和过滤器 48
编写一个新客户端 52
总结 54
参考资料 57
 
第3 章 表述器模式 59
XML 还是JSON :选一个吧62
新的分支:超媒体格式 63
“正确”的谬误 65
重建(reframe)问题 66
表述器(Representor)模式 68
从功能中分离格式 69
选择算法 69
适配和翻译 71
服务端模型 74
处理HTTP Accept 头部参数 74
实现消息翻译器模式 74
通用表述器模块 76
WeSTL 格式 76
表述器的范例 81
总结 84
参考资料 86
 
第4 章 HAL 客户端 89
HAL 格式 91
Links 93
Objects 和Properties 94
内嵌Links 和Objects 95
小结 97
HAL 表述器 97
Links 98
Properties 99
内嵌内容  100
HAL 表述器构建TPS 输出示例  102
HAL SPA 客户端 104
HTML 容器  105
顶层解析循环  106
Links  107
内嵌内容  109
Properties  113
为HAL 处理Action  114
小结  116
应对变化  117
添加ACTION  117
HAL-FORMS 扩展  121
规范  121
请求HAL-FORMS 文档  123
实现  124
总结  125
参考资料  128
 
第5 章 可重用客户端应用的挑战 131
你在解决什么问题  133
设计的双钻石模型  134
闭合方案 vs 开放方案  134
交互建模  136
Maldonado 的机制  137
Verplank 的人类视角  139
超媒体交互循环  141
RPW 循环  141
用代码实现RPW 143
处理Verplank 的KNOW 步骤  144
总结  148
参考资料  150
 
第6 章 Siren 客户端 153
Siren 格式  155
Entities  157
Class  158
Properties  158
Links  159
Actions  159
SubEntities  160
小结  162
Siren 表述器  162
顶层循环  163
Class  164
Properties  164
Entities  165
Actions  166
Links  168
TPS 通过Siren 表述器输出示例  169
Siren SPA 客户端  172
HTML 容器  173
顶层解析循环  173
Links  174
Entities  176
Properties  178
Actions  181
小结  184
应对变化  184
添加邮箱字段和过滤器  185
测试邮箱字段  187
Profile 对象描述(POD)扩展  190
POD 规范  191
实现  192
在Siren 中使用POD 展示对象  194
小结  195
总结  196
参考资料  198
 
第7 章 版本化与Web 199
互联网中的版本化  201
TCP/IP 的健壮性原则  202
HTTP 中的MUST IGNORE  203
HTML 的向后兼容性  205
非破坏性变更指南  206
API 设计者  206
服务端实现者  209
客户端实现者  215
总结  223
参考资料  225
 
第8 章 Collection JSON 客户端 227
Collection JSON 格式  229
Links  232
Items  233
Queries  234
Template  235
Error  237
小结  237
xviii | 目录
Collection JSON 表述器  238
顶层处理循环  238
Links  239
Items  240
Queries  243
Template  244
Error  245
Collection JSON SPA 客户端  246
HTML 容器  246
顶层解析循环  248
Links  249
Items  250
Queries  253
Template  255
Error  257
小结  258
处理变更  258
在TPS API 中添加Note 对象  259
Cj 和OAA 挑战  265
小结  266
扩展Collection JSON  266
用Cj-Types 支持改善的输入  267
Cj-Suggest 扩展  271
小结  275
总结  275
参考资料  279
 
第9 章 超媒体与微服务 281
UNIX 哲学  284
BigCo 的TPS 微服务  285
Task 服务与Collection JSON  286
User 服务与Siren  290
Note 服务与HAL  293
一个客户端,统领全局  296
Home 服务 297
多格式客户端SPA 容器  298
可以切换格式的客户端UI  301
 
总结  308
参考资料  312
 
结语:拥抱你的未来 313
附录A 项目清单 315
附录B 工具与资源 319
猜您喜欢

读书导航