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

RESTful Web Clients:基于超媒体的可复用客户端
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2018-07
版次: 1
ISBN: 9787121337581
定价: 99.00
装帧: 其他
开本: 16开
纸张: 胶版纸
8人买过
  • 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
  • 内容简介:
    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
查看详情
相关图书 / 更多
RESTful Web Clients:基于超媒体的可复用客户端
READY-TO-READ双语阅读经典·一年级的小豆包(套装全28册)
玛格丽特 · 麦克纳马拉
RESTful Web Clients:基于超媒体的可复用客户端
REITs市场建设
郑雪晴
RESTful Web Clients:基于超媒体的可复用客户端
REITs:房地产运营时代
蔺玉红;李杨;杜楠
RESTful Web Clients:基于超媒体的可复用客户端
READZONE分级阅读(Level4中英对照原版绘本共15册)
乔·哈克特 著;[英]安妮·鲁尼、安迪·布莱克福德、佩妮·利特尔、瓦莱丽·怀尔丁、布克听听 译
RESTful Web Clients:基于超媒体的可复用客户端
REITs:实现公共资产证券化的金融模式
孟明毅 著
RESTful Web Clients:基于超媒体的可复用客户端
REITs的中国化路径研究
杨慧丽 著
RESTful Web Clients:基于超媒体的可复用客户端
READZONE分级阅读(Level2中英对照原版绘本共15册)
吉利安·鲍威尔 著;[英]希拉里·罗宾逊、薇薇安·法兰奇、海伦·伯德、米克·高瓦、布克听听 译
RESTful Web Clients:基于超媒体的可复用客户端
READY-TO-READ双语阅读经典·亨利和玛吉
辛西娅·赖兰特
RESTful Web Clients:基于超媒体的可复用客户端
REITs:颠覆传统地产的金融模式(第二版)
高旭华、修逸群、高仪 著
RESTful Web Clients:基于超媒体的可复用客户端
READZONE分级阅读(Level3中英对照原版绘本共15册)
斯库勒·安德森 著;[英]玛德琳·谷迪、大卫·奥姆、艾伦·杜兰特、薇薇安·法兰奇、布克听听 译
RESTful Web Clients:基于超媒体的可复用客户端
READZONE分级阅读(Level1中英对照原版绘本共15册)
吉利安·鲍威尔 著;[英]苏·斯沃洛、保罗·哈里森、薇薇安·法兰奇、凯·伍沃德、布克听听 译
RESTful Web Clients:基于超媒体的可复用客户端
REIGEN:超能值MAX131的男人(二次元的灵魂归宿,有生之年必看佳作。)
[日]ONE 著;博集天卷 出品
您可能感兴趣 / 更多
RESTful Web Clients:基于超媒体的可复用客户端
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
RESTful Web Clients:基于超媒体的可复用客户端
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
RESTful Web Clients:基于超媒体的可复用客户端
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
RESTful Web Clients:基于超媒体的可复用客户端
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
RESTful Web Clients:基于超媒体的可复用客户端
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
RESTful Web Clients:基于超媒体的可复用客户端
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
RESTful Web Clients:基于超媒体的可复用客户端
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
RESTful Web Clients:基于超媒体的可复用客户端
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
RESTful Web Clients:基于超媒体的可复用客户端
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
RESTful Web Clients:基于超媒体的可复用客户端
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
RESTful Web Clients:基于超媒体的可复用客户端
你在等什么?
[美]斯科特·明钦 著;[中]易万 译;[美]马特 ·斐兰 绘
RESTful Web Clients:基于超媒体的可复用客户端
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译