RESTful Web APIs中文版

RESTful Web APIs中文版 pdf epub mobi txt 电子书 下载 2026

出版者:电子工业出版社
作者:[美] Leonard Richardson
出品人:
页数:382
译者:李哲
出版时间:2014-6
价格:79.00元
装帧:平装
isbn号码:9787121231155
丛书系列:
图书标签:
  • RESTful
  • 架构
  • Web开发
  • API
  • 编程
  • REST
  • Web
  • 互联网
  • RESTful
  • API
  • Web
  • API
  • 设计
  • REST
  • 架构
  • HTTP
  • 网络编程
  • 软件架构
  • Web开发
  • 实践
  • 教程
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《RESTful Web APIs中文版》是针对RESTful API的实用指南,通过展示各种用来创建高可用应用的强大工具,讲解REST的深层原理,以及介绍基于超媒体API的策略,使读者得以在将上述内容融会贯通后,设计出让客户高度满意的RESTful的web API。《RESTful Web APIs中文版》极具权威性与前瞻性,既代表了API领域的最前沿趋势,也覆盖了API领域的最重要实践。

《RESTful Web APIs中文版》适合所有从事Web开发和架构工作的读者阅读参考。

作者简介

Leonard Richardson, 《Ruby Cookbook》 (O’Reilly)一书的作者,曾 创建了包括Beautiful Soup在内 的多个开源代码库。Mike Amundsen 是包括《Building Hypermedia APIs with HTML5 and Node》(O’Reilly) 在内的十几本为人所称道的技术图书的作者。

Sam Ruby 是W3C HTML工作组的联合主席,同时也是IBM新 兴技术组的一名高级技术人员。

目录信息

序 ................................................................................xix
前言 .............................................................................xxi
第1 章 网上冲浪 ............................................................ 1
场景1 :广告牌 ......................................................................................................2
资源和表述 .....................................................................................................2
可寻址性 .........................................................................................................3
场景2 :主页 .........................................................................................................3
短会话(Short Session) ..................................................................................5
自描述消息(self-descriptive message) ..........................................................5
场景3 :链接 .........................................................................................................6
标准方法 .........................................................................................................8
场景4 :表单和重定向 ..........................................................................................9
应用状态(Application State) ....................................................................... 11
资源状态(resource state) ............................................................................12
连通性(connectedness) ...............................................................................13
与众不同的Web ............................................................................................14
Web API 落后于Web ....................................................................................15
语义挑战 .......................................................................................................16
第2 章 一个简单的API ................................................ 17
HTTP GET :安全的投注 .....................................................................................18
如何读取HTTP 响应 ...........................................................................................19
JSON ....................................................................................................................20
Collection+JSON ..................................................................................................21
向API 写入数据 ..................................................................................................23
HTTP POST: 资源是如何生成的 ..........................................................................24
由约束带来解放 ...................................................................................................26
应用语义所产生的语义鸿沟 ................................................................................27
第3 章 资源和表述 ...................................................... 29
万物皆可为资源 ...................................................................................................30
表述描述资源状态 ...............................................................................................30
往来穿梭的表述 ...................................................................................................31
资源有多重表述 ...................................................................................................32
HTTP 协议语义(Protocol Semantics) .............................................................33
GET ...............................................................................................................35
DELETE ........................................................................................................36
幂等性(Idempotence) ..................................................................................36
POST-to-Append ............................................................................................37
PUT ...............................................................................................................38
PATCH ..........................................................................................................39
LINK 和UNLINK .........................................................................................40
HEAD ............................................................................................................40
OPTIONS ......................................................................................................41
Overloaded POST ..........................................................................................41
应该使用哪些方法? ...........................................................................................42
第4 章 超媒体 ............................................................. 45
将HTML 作为超媒体格式...................................................................................46
URI 模板 ..............................................................................................................49
URI vs URL .........................................................................................................50
Link 报头 .............................................................................................................51
超媒体的作用 ......................................................................................................52
引导请求 .......................................................................................................52
对响应做出承诺 ............................................................................................54
工作流控制 ...................................................................................................55
当心冒牌的超媒体! ...........................................................................................56
语义挑战:我们该怎么做? ................................................................................57
第5 章 领域特定设计 ................................................... 59
Maze+XML :领域特定设计 ................................................................................60
Maze+XML 是如何工作的 ...................................................................................61
链接关系 .......................................................................................................62
访问链接来改变应用状态 .............................................................................64
迷宫集合 ..............................................................................................................65
Maze+XML 是API 吗? ......................................................................................67
客户端1 :游戏 ....................................................................................................68
Maze+XML 服务器 ..............................................................................................72
客户端2 :地图生成器 ........................................................................................74
客户端3 :吹牛者 ................................................................................................76
客户端做自己想要做的事 ....................................................................................77
对标准进行扩展 ............................................................................................77
地图生成器的缺陷 ...............................................................................................80
修复(以及修复后的瑕疵) ...........................................................................81
迷宫的暗喻 ..........................................................................................................83
解决语义鸿沟 ......................................................................................................83
领域特定设计在哪里? ........................................................................................83
最终的奖赏 ...................................................................................................84
报头中的超媒体 ............................................................................................84
抄袭应用语义 ................................................................................................84
如果找不到相关的领域特定设计,不要自己制造 ...............................................86
API 客户端的种类 ...............................................................................................86
人类驱动的客户端 ........................................................................................86
自动化客户端 ................................................................................................87
第6 章 集合模式(Collection Pattern) ......................... 91
什么是集合? ......................................................................................................93
链向子项的集合 ............................................................................................93
Collection+JSON ..................................................................................................94
子项的表示 ...................................................................................................95
写入模板(Write Template) ..........................................................................98
搜索模板 .......................................................................................................99
一个(通用的)集合是如何工作的 ................................................................... 100
GET ............................................................................................................. 101
POST-to-Append .......................................................................................... 101
PUT 和PATCH ............................................................................................ 101
DELETE ...................................................................................................... 102
分页 ............................................................................................................. 102
搜索表单 ..................................................................................................... 103
Atom 发布协议(AtomPub) .............................................................................. 103
AtomPub 插件标准 ...................................................................................... 105
为什么不是每个人都选择使用AtomPub ? ................................................ 106
语义挑战:我们应该怎么做? .......................................................................... 107
第7 章 纯- 超媒体设计 .............................................. 111
为什么是HTML? ............................................................................................... 111
HTML 的能力 .................................................................................................... 112
超媒体控件 ................................................................................................. 112
应用语义插件 .............................................................................................. 113
微格式 ................................................................................................................ 115
hMaze 微格式 .................................................................................................... 116
微数据 ................................................................................................................ 118
改变资源状态 .................................................................................................... 119
为表单添加应用语义 ................................................................................... 121
与超媒体相对是普通媒体 .................................................................................. 125
HTML 的局限性 ................................................................................................ 126
拯救者HTML5? .......................................................................................... 127
超文本应用语言 ................................................................................................. 128
Siren ................................................................................................................... 131
语义挑战:我们现在要怎么做? ....................................................................... 133
第8 章 Profile ........................................................... 135
客户端如何找寻文档? ...................................................................................... 136
什么是Profile ? ................................................................................................ 137
链接到Profile .................................................................................................... 137
Profile 链接关系 .......................................................................................... 137
Profile 媒体类型参数 .................................................................................. 138
特殊用途的超媒体控件 ............................................................................... 139
Profile 对协议语义的描述 .................................................................................. 139
Profile 对应用语义的描述 .................................................................................. 140
链接关系 ..................................................................................................... 141
不安全的链接关系 ...................................................................................... 142
语义描述符 ................................................................................................. 142
XMDP :首个机器可读的Profile 格式 .............................................................. 143
ALPS .................................................................................................................. 146
ALPS 的优势 ............................................................................................... 150
ALPS 并不是万金油 .................................................................................... 152
JSON-LD ........................................................................................................... 153
内嵌的文档 ........................................................................................................ 156
总结 ................................................................................................................... 158
第9 章 API 设计流程 ................................................. 161
两个步骤的设计流程 ......................................................................................... 161
七步骤设计流程 ................................................................................................. 162
第1 步:罗列语义描述符 ........................................................................... 163
第2 步:画状态图 ...................................................................................... 164
第3 步:调整命名 ...................................................................................... 168
第4 步:选择一种媒体类型 ....................................................................... 172
第5 步:编写Profile .................................................................................. 173
第6 步:实现 .............................................................................................. 174
第7 步:发布 .............................................................................................. 174
实例:You Type It, We Post It ............................................................................ 177
罗列语义描述符 .......................................................................................... 177
画状态图 ..................................................................................................... 178
调整名称 ..................................................................................................... 179
选择一种媒体类型 ...................................................................................... 180
编写Profile ................................................................................................. 181
设计建议 ............................................................................................................ 182
资源是实现的内部细节 ............................................................................... 182
不要掉入集合陷阱 ...................................................................................... 183
不要从表述格式着手 ................................................................................... 184
URL 设计并不重要 ..................................................................................... 184
标准名称优于自定义名称 ........................................................................... 186
设计媒体类型 .............................................................................................. 187
当你的API 改变时 ...................................................................................... 189
为现有API 添加超媒体 ..................................................................................... 194
改进基于XML 的API ................................................................................ 195
值不值得? ................................................................................................. 196
Alice 的第二次探险 ........................................................................................... 196
场景1 :没有意义的表述 ............................................................................ 196
场景2 :Profile ............................................................................................ 198
Alice 明白了 ................................................................................................ 200
第10 章 超媒体动物园 ............................................... 203
领域特定格式 .................................................................................................... 204
Maze+XML ................................................................................................. 204
OpenSearch ................................................................................................. 205
问题细节文档 .............................................................................................. 205
SVG ............................................................................................................. 206
VoiceXML ................................................................................................... 208
集合模式的格式 ................................................................................................. 210
Collection+JSON ......................................................................................... 211
Atom 发布协议 ............................................................................................ 211
OData .......................................................................................................... 212
纯超媒体格式 .................................................................................................... 219
HTML .......................................................................................................... 219
HAL ........................................................................................................... 220
Link 报头 .................................................................................................... 222
Location 和Content-Location 报头 ............................................................. 222
URL 列表 .................................................................................................... 223
JSON 主文档(Home Documents) .............................................................. 223
Link-Template 报头 ..................................................................................... 224
WADL ......................................................................................................... 225
XLink .......................................................................................................... 226
XForms ........................................................................................................ 227
GeoJSON :一个令人困惑的类型 ...................................................................... 228
GeoJSON 没有通用的超媒体控件 ............................................................... 230
GeoJSON 没有媒体类型 ............................................................................. 232
从GeoJSON 学习到的经验 ......................................................................... 233
语义动物园 ........................................................................................................ 234
链接关系的IANA 注册表 ........................................................................... 234
微格式WiKi ................................................................................................ 235
来自微格式Wiki 的链接关系 ...................................................................... 236
第11 章 API 中的HTTP ............................................ 241
新HTTP/1.1 规范 .............................................................................................. 242
响应码 ................................................................................................................ 242
报头 ................................................................................................................... 243
表述选择 ............................................................................................................ 243
内容协商(Content Negotiation) ................................................................ 243
超媒体菜单 ................................................................................................. 244
标准URL(Canonical URL) ...................................................................... 245
HTTP 性能 ......................................................................................................... 246
缓存(Caching) .......................................................................................... 246
条件GET 请求(Conditional GET) ............................................................ 247
Look-Before-You-Leap 请求 ........................................................................ 249
压缩 ............................................................................................................. 250
部分GET 请求(Partial GET) .................................................................... 250
Pipelining .................................................................................................... 251
避免更新丢失问题 ............................................................................................. 252
认证 ................................................................................................................... 254
WWW-Authenticate 报头和Authorization 报头 .......................................... 255
Basic 认证 ................................................................................................... 255
OAuth 1.0 .................................................................................................... 256
OAuth 1.0 的缺点 ........................................................................................ 259
OAuth 2.0 .................................................................................................... 260
何时不采用OAuth ...................................................................................... 261
HTTP 扩展 ......................................................................................................... 261
PATCH 方法 ................................................................................................ 262
LINK 和UNLINK 方法 ............................................................................... 262
WebDAV ...................................................................................................... 263
HTTP 2.0 ..................................................................................................... 264
第12 章 资源描述和Linked Data ............................... 267
RDF ................................................................................................................... 268
RDF 将URL 作为URI 对待........................................................................ 270
什么时候使用描述策略 ...................................................................................... 271
资源类型 ............................................................................................................ 273
RDF Schema ...................................................................................................... 274
Linked Data 运动 ............................................................................................... 277
JSON-LD ........................................................................................................... 278
将JSON-LD 作为一种表述格式 ................................................................. 279
Hydra ................................................................................................................. 280
XRD 家族........................................................................................................... 285
XRD 和JRD ................................................................................................ 285
Web 主机元数据文档 .................................................................................. 286
WebFinger ................................................................................................... 287
本体动物园(Ontology Zoo) ............................................................................. 289
schema.org RDF .......................................................................................... 289
FOAF .......................................................................................................... 290
vocab.org .................................................................................................... 290
总结:描述策略生机盎然! ....................................................................... 290
第13 章 CoAP: 嵌入式系统的REST .......................... 293
CoAP 请求 ......................................................................................................... 294
CoAP 响应 ......................................................................................................... 294
消息种类 ............................................................................................................ 295
延迟响应(Delayed Response) .......................................................................... 296
多播消息(Multicast Message) ......................................................................... 296
CoRE Link Format ............................................................................................. 297
结论:非HTTP 协议的REST ........................................................................... 298
附录A 状态法典 ........................................................ 301
附录B HTTP 报头法典 .............................................. 325
附录C 为API 设计者准备的Fielding 论文导读 ........... 349
词汇表 ....................................................................... 365
· · · · · · (收起)

读后感

评分

本书主要围绕如何增强Web API的应用语义,开发出计算机客户端可以理解的Web API。 一般情况下,如果一套Web API能够严格遵守协议语义(主要是HTTP协议),已经可以算是比较清晰、简单易用的API。但是beyond,如果能够有完美的应用语义,则这些API会更加便于客户端调用,并且在A...  

评分

本以为会讲什么是restful api,怎么设计好api,有哪些坑,有哪些惯例 结果愣是没看明白讲的啥. 当初该看看目录再决定买这本书的 后悔了...后悔了...后悔了...后悔了...后悔了...后悔了...后悔了...

评分

本书主要围绕如何增强Web API的应用语义,开发出计算机客户端可以理解的Web API。 一般情况下,如果一套Web API能够严格遵守协议语义(主要是HTTP协议),已经可以算是比较清晰、简单易用的API。但是beyond,如果能够有完美的应用语义,则这些API会更加便于客户端调用,并且在A...  

评分

本以为会讲什么是restful api,怎么设计好api,有哪些坑,有哪些惯例 结果愣是没看明白讲的啥. 当初该看看目录再决定买这本书的 后悔了...后悔了...后悔了...后悔了...后悔了...后悔了...后悔了...

评分

本书主要围绕如何增强Web API的应用语义,开发出计算机客户端可以理解的Web API。 一般情况下,如果一套Web API能够严格遵守协议语义(主要是HTTP协议),已经可以算是比较清晰、简单易用的API。但是beyond,如果能够有完美的应用语义,则这些API会更加便于客户端调用,并且在A...  

用户评价

评分

这本书的封面设计着实吸引人,那种深沉的蓝色调配上简洁的排版,一下子就给人一种专业、权威的感觉。我当时在书店里一眼就被它吸引住了,感觉它可能藏着通往高效、现代Web开发的秘密钥匙。翻开扉页,里面的内容排版也相当考究,字体大小和行距都拿捏得恰到好处,阅读起来非常舒适,这对于一本技术书籍来说至关重要。我尤其欣赏它在术语介绍上的严谨性,每一个核心概念的引入都像是精心铺陈的序章,让你在进入深层主题之前,就已经建立起了坚实的基础认知。作者在开篇就对Web服务的演变历史进行了梳理,那种娓娓道来的叙事方式,并没有让人觉得枯燥,反而像是在听一位资深架构师分享他的心路历程,让你明白“为什么RESTful”而不是“怎么RESTful”。这种对背景和理念的重视,使得后续技术细节的讲解,不再是孤立的知识点堆砌,而是有了深厚的理论支撑。我感觉作者非常注重读者的接受过程,每一个章节的过渡都极其自然,仿佛推着你一步步深入迷宫,却总能在关键时刻为你点亮一盏指路的明灯。这不仅仅是一本工具书,更像是一部关于构建健壮、可扩展系统的思想指南,让人读完后对整个API设计哲学都有了重塑。

评分

初次接触这本书时,我抱着一种既期待又略带忐忑的心情,毕竟“Web APIs”这个领域知识更新的速度太快了。然而,这本书的章节组织结构展现出一种罕见的逻辑性和层次感。它似乎遵循着一种“由宏观到微观,再回归实践”的螺旋上升模式。最让我印象深刻的是它对HTTP动词使用的精妙阐述,作者不仅仅是简单地罗列GET、POST、PUT、DELETE的用途,而是深入探讨了幂等性、安全性等非功能性需求如何通过这些基础动词得到优雅的体现。特别是关于状态码的运用部分,简直是一场教科书级别的演示,如何用精准的状态码(比如201 Created与202 Accepted的区别,或者409 Conflict的适用场景)来清晰地与客户端沟通,这在实际项目中是多么的关键却又常常被忽视的细节。书中大量的图表和流程图,清晰地描绘了资源的状态转换和操作流程,即便是在处理一些复杂的多资源操作时,也能通过可视化的方式迅速抓住核心逻辑。我发现自己不再是机械地记忆规则,而是开始从更深层次理解HTTP协议的设计哲学,这无疑极大地提升了我设计接口的直觉和准确性。

评分

这本书的语言风格非常独特,它既有学术著作的严谨性,又不乏一线工程师的实战锐气。在探讨诸如HATEOAS(超媒体作为应用状态引擎)这样相对抽象的概念时,作者没有采用晦涩的理论堆砌,而是通过一系列生动的、贴近现实的案例加以说明。例如,它会构建一个虚拟的“在线书店”系统,一步步展示如何在API响应中嵌入链接,指导客户端进行下一步操作,这种具象化的教学方式,极大地降低了HATEOAS的理解门槛。我特别喜欢书中穿插的一些“陷阱与规避”的章节,这些部分显然是作者在多年开发生涯中踩过的坑总结出来的宝贵经验。它们通常以警告性的口吻出现,提醒读者在追求纯粹的RESTful设计时,不要忽略了诸如性能瓶颈、版本控制的兼容性等实际工程问题。这些内容让这本书显得格外接地气,它不是高高在上的理论说教,而是真正站在一个希望构建出能在生产环境中长期稳定运行的API的开发者的角度来撰写的。这种“防呆”设计,让初学者少走了很多弯路,对资深开发者来说也是一种及时的提醒和校准。

评分

这本书的实操性强到令人惊喜,即便它在理论上已经足够深刻。在每一个核心设计原则讲解完毕后,书中都会紧跟着提供一到两个精心设计的代码示例或伪代码块。这些示例不仅仅是展示了API的结构,更深入到了数据序列化、错误处理的细节层面。比如,关于如何设计健壮的过滤、排序和分页机制,作者给出的方案不仅简洁高效,而且充分考虑了数据库层面的性能影响,这表明作者对底层技术栈的理解也是非常透彻的。我特别喜欢它在安全章节中对OAuth 2.0和JWT的讲解,它没有停留在流程图的层面,而是详细剖析了Token的生命周期管理、刷新机制以及潜在的重放攻击风险,并给出了推荐的实现模式。读完这部分内容后,我立刻着手优化了自己正在维护的一个旧项目的API安全层,效果立竿见影。这本书的价值在于,它提供的不仅仅是“做什么”的指导,更是“如何做得好”的详细操作指南,是真正能让你在合上书本后,立即投入实践并产出高质量成果的宝典。

评分

在阅读过程中,我常常被作者对于“规范与灵活”之间平衡的探讨所吸引。这本书并没有将RESTful原则视为一套不可动摇的教条,而是倡导一种务实的工程艺术。书中专门有一章深入讨论了GraphQL、gRPC等新兴API范式与RESTful的对比和共存关系,这种开阔的视野非常令人赞赏。它没有简单地贬低任何一方,而是客观分析了每种技术栈在特定业务场景下的优劣势。更进一步,它还提供了一套评估标准,帮助开发者判断何时应该坚守RESTful的边界,何时又需要适当“破界”以优化用户体验或性能。这种成熟的、不偏激的论述方式,让读者能够建立起一种更具弹性的技术判断力。我感觉自己不再是只会实现某个框架的“码农”,而是开始思考如何为我的业务选择最恰当的通信协议和架构风格。这种从“术”到“道”的升华,是这本书最有价值的部分,它教会了我们如何带着清晰的认知去选择工具,而不是被工具牵着鼻子走。

评分

看了三分之一看不下去了,太无聊了,假装自己看完了吧,嗯。心疼买书钱。追加:一切 url 皆资源,所以不要有动词,嗯。

评分

难道不应该简简单单就讲完吗。

评分

难道不应该简简单单就讲完吗。

评分

太学术了

评分

太学术了

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有