RESTful Web APIs中文版
副标题:无
分类号:
ISBN:9787121231155
微信扫一扫,移动浏览光盘
简介
《RESTful Web APIs中文版》是针对RESTful API的实用指南,通过展示各种用来创建高可用应用的强大工具,讲解REST的深层原理,以及介绍基于超媒体API的策略,使读者得以在将上述内容融会贯通后,设计出让客户高度满意的RESTful的web API。《RESTful Web APIs中文版》极具权威性与前瞻性,既代表了API领域的最前沿趋势,也覆盖了API领域的最重要实践。 《RESTful Web APIs中文版》适合所有从事Web开发和架构工作的读者阅读参考。
目录
序 xix
前言 xxi
第1章 网上冲浪
场景1 :广告牌
资源和表述
可寻址性
场景2 :主页
短会话(Short Session)
自描述消息(self-descriptive message)
场景3 :链接
标准方法
场景4 :表单和重定向
应用状态(Application State)
资源状态(resource state)
连通性(connectedness)
与众不同的Web
Web API 落后于Web
语义挑战
第2章 一个简单的API
HTTP GET :安全的投注
如何读取HTTP 响应
JSON
Collection+JSON
向API 写入数据
HTTP POST: 资源是如何生成的
由约束带来解放
应用语义所产生的语义鸿沟
第3章 资源和表述
万物皆可为资源
表述描述资源状态
往来穿梭的表述
资源有多重表述
HTTP 协议语义(Protocol Semantics)
GET
DELETE
幂等性(Idempotence)
POST-to-Append
PUT
PATCH
LINK 和UNLINK
HEAD
OPTIONS
Overloaded POST
应该使用哪些方法?
第4章 超媒体
将HTML 作为超媒体格式
URI 模板
URI vs URL
Link 报头
超媒体的作用
引导请求
对响应做出承诺
工作流控制
当心冒牌的超媒体!
语义挑战:我们该怎么做?
第5章 领域特定设计
Maze+XML :领域特定设计
Maze+XML 是如何工作的
链接关系
访问链接来改变应用状态
迷宫集合
Maze+XML 是API 吗?
客户端1 :游戏
Maze+XML 服务器
客户端2 :地图生成器
客户端3 :吹牛者
客户端做自己想要做的事
对标准进行扩展
地图生成器的缺陷
修复(以及修复后的瑕疵)
迷宫的暗喻
解决语义鸿沟
领域特定设计在哪里?
最终的奖赏
报头中的超媒体
抄袭应用语义
如果找不到相关的领域特定设计,不要自己制造
API 客户端的种类
人类驱动的客户端
自动化客户端
第6章 集合模式(Collection Pattern)
什么是集合?
链向子项的集合
Collection+JSON
子项的表示
写入模板(Write Template)
搜索模板
一个(通用的)集合是如何工作的
GET
POST-to-Append
PUT 和PATCH
DELETE
分页
搜索表单
Atom 发布协议(AtomPub)
AtomPub 插件标准
为什么不是每个人都选择使用AtomPub ?
语义挑战:我们应该怎么做?
第7章 纯- 超媒体设计
为什么是HTML?
HTML 的能力
超媒体控件
应用语义插件
微格式
hMaze 微格式
微数据
改变资源状态
为表单添加应用语义
与超媒体相对是普通媒体
HTML 的局限性
拯救者HTML5?
超文本应用语言
Siren
语义挑战:我们现在要怎么做?
第8章 Profile
客户端如何找寻文档?
什么是Profile ?
链接到Profile
Profile 链接关系
Profile 媒体类型参数
特殊用途的超媒体控件
Profile 对协议语义的描述
Profile 对应用语义的描述
链接关系
不安全的链接关系
语义描述符
XMDP :首个机器可读的Profile 格式
ALPS
ALPS 的优势
ALPS 并不是万金油
JSON-LD
内嵌的文档
总结
第9章 API 设计流程
两个步骤的设计流程
七步骤设计流程
第1步:罗列语义描述符
第2步:画状态图
第3步:调整命名
第4步:选择一种媒体类型
第5步:编写Profile
第6步:实现
第7步:发布
实例:You Type It, We Post It
罗列语义描述符
画状态图
调整名称
选择一种媒体类型
编写Profile
设计建议
资源是实现的内部细节
不要掉入集合陷阱
不要从表述格式着手
URL 设计并不重要
标准名称优于自定义名称
设计媒体类型
当你的API 改变时
为现有API 添加超媒体
改进基于XML 的API
值不值得?
Alice 的第二次探险
场景1 :没有意义的表述
场景2 :Profile
Alice 明白了
第10章 超媒体动物园
领域特定格式
Maze+XML
OpenSearch
问题细节文档
SVG
VoiceXML
集合模式的格式
Collection+JSON
Atom 发布协议
OData
纯超媒体格式
HTML
HAL
Link 报头
Location 和Content-Location 报头
URL 列表
JSON 主文档(Home Documents)
Link-Template 报头
WADL
XLink
XForms
GeoJSON :一个令人困惑的类型
GeoJSON 没有通用的超媒体控件
GeoJSON 没有媒体类型
从GeoJSON 学习到的经验
语义动物园
链接关系的IANA 注册表
微格式WiKi
来自微格式Wiki 的链接关系
第11章 API 中的HTTP
新HTTP/11 规范
响应码
报头
表述选择
内容协商(Content Negotiation)
超媒体菜单
标准URL(Canonical URL)
HTTP 性能
缓存(Caching)
条件GET 请求(Conditional GET)
Look-Before-You-Leap 请求
压缩
部分GET 请求(Partial GET)
Pipelining
避免更新丢失问题
认证
WWW-Authenticate 报头和Authorization 报头
Basic 认证
OAuth
OAuth 10 的缺点
OAuth
何时不采用OAuth
HTTP扩展
PATCH 方法
LINK 和UNLINK 方法
WebDAV
HTTP
第12章 资源描述和Linked Data
RDF
RDF 将URL 作为URI 对待
什么时候使用描述策略
资源类型
RDF Schema
Linked Data 运动
JSON-LD
将JSON-LD 作为一种表述格式
Hydra
XRD 家族
XRD 和JRD
Web 主机元数据文档
WebFinger
本体动物园(Ontology Zoo)
schemaorg RDF
FOAF
vocaborg
总结:描述策略生机盎然!
第13章 CoAP: 嵌入式系统的REST
CoAP 请求
CoAP 响应
消息种类
延迟响应(Delayed Response)
多播消息(Multicast Message)
CoRE Link Format
结论:非HTTP 协议的REST
附录A 状态法典
附录B HTTP 报头法典
附录C 为API 设计者准备的Fielding 论文导读
词汇表
前言 xxi
第1章 网上冲浪
场景1 :广告牌
资源和表述
可寻址性
场景2 :主页
短会话(Short Session)
自描述消息(self-descriptive message)
场景3 :链接
标准方法
场景4 :表单和重定向
应用状态(Application State)
资源状态(resource state)
连通性(connectedness)
与众不同的Web
Web API 落后于Web
语义挑战
第2章 一个简单的API
HTTP GET :安全的投注
如何读取HTTP 响应
JSON
Collection+JSON
向API 写入数据
HTTP POST: 资源是如何生成的
由约束带来解放
应用语义所产生的语义鸿沟
第3章 资源和表述
万物皆可为资源
表述描述资源状态
往来穿梭的表述
资源有多重表述
HTTP 协议语义(Protocol Semantics)
GET
DELETE
幂等性(Idempotence)
POST-to-Append
PUT
PATCH
LINK 和UNLINK
HEAD
OPTIONS
Overloaded POST
应该使用哪些方法?
第4章 超媒体
将HTML 作为超媒体格式
URI 模板
URI vs URL
Link 报头
超媒体的作用
引导请求
对响应做出承诺
工作流控制
当心冒牌的超媒体!
语义挑战:我们该怎么做?
第5章 领域特定设计
Maze+XML :领域特定设计
Maze+XML 是如何工作的
链接关系
访问链接来改变应用状态
迷宫集合
Maze+XML 是API 吗?
客户端1 :游戏
Maze+XML 服务器
客户端2 :地图生成器
客户端3 :吹牛者
客户端做自己想要做的事
对标准进行扩展
地图生成器的缺陷
修复(以及修复后的瑕疵)
迷宫的暗喻
解决语义鸿沟
领域特定设计在哪里?
最终的奖赏
报头中的超媒体
抄袭应用语义
如果找不到相关的领域特定设计,不要自己制造
API 客户端的种类
人类驱动的客户端
自动化客户端
第6章 集合模式(Collection Pattern)
什么是集合?
链向子项的集合
Collection+JSON
子项的表示
写入模板(Write Template)
搜索模板
一个(通用的)集合是如何工作的
GET
POST-to-Append
PUT 和PATCH
DELETE
分页
搜索表单
Atom 发布协议(AtomPub)
AtomPub 插件标准
为什么不是每个人都选择使用AtomPub ?
语义挑战:我们应该怎么做?
第7章 纯- 超媒体设计
为什么是HTML?
HTML 的能力
超媒体控件
应用语义插件
微格式
hMaze 微格式
微数据
改变资源状态
为表单添加应用语义
与超媒体相对是普通媒体
HTML 的局限性
拯救者HTML5?
超文本应用语言
Siren
语义挑战:我们现在要怎么做?
第8章 Profile
客户端如何找寻文档?
什么是Profile ?
链接到Profile
Profile 链接关系
Profile 媒体类型参数
特殊用途的超媒体控件
Profile 对协议语义的描述
Profile 对应用语义的描述
链接关系
不安全的链接关系
语义描述符
XMDP :首个机器可读的Profile 格式
ALPS
ALPS 的优势
ALPS 并不是万金油
JSON-LD
内嵌的文档
总结
第9章 API 设计流程
两个步骤的设计流程
七步骤设计流程
第1步:罗列语义描述符
第2步:画状态图
第3步:调整命名
第4步:选择一种媒体类型
第5步:编写Profile
第6步:实现
第7步:发布
实例:You Type It, We Post It
罗列语义描述符
画状态图
调整名称
选择一种媒体类型
编写Profile
设计建议
资源是实现的内部细节
不要掉入集合陷阱
不要从表述格式着手
URL 设计并不重要
标准名称优于自定义名称
设计媒体类型
当你的API 改变时
为现有API 添加超媒体
改进基于XML 的API
值不值得?
Alice 的第二次探险
场景1 :没有意义的表述
场景2 :Profile
Alice 明白了
第10章 超媒体动物园
领域特定格式
Maze+XML
OpenSearch
问题细节文档
SVG
VoiceXML
集合模式的格式
Collection+JSON
Atom 发布协议
OData
纯超媒体格式
HTML
HAL
Link 报头
Location 和Content-Location 报头
URL 列表
JSON 主文档(Home Documents)
Link-Template 报头
WADL
XLink
XForms
GeoJSON :一个令人困惑的类型
GeoJSON 没有通用的超媒体控件
GeoJSON 没有媒体类型
从GeoJSON 学习到的经验
语义动物园
链接关系的IANA 注册表
微格式WiKi
来自微格式Wiki 的链接关系
第11章 API 中的HTTP
新HTTP/11 规范
响应码
报头
表述选择
内容协商(Content Negotiation)
超媒体菜单
标准URL(Canonical URL)
HTTP 性能
缓存(Caching)
条件GET 请求(Conditional GET)
Look-Before-You-Leap 请求
压缩
部分GET 请求(Partial GET)
Pipelining
避免更新丢失问题
认证
WWW-Authenticate 报头和Authorization 报头
Basic 认证
OAuth
OAuth 10 的缺点
OAuth
何时不采用OAuth
HTTP扩展
PATCH 方法
LINK 和UNLINK 方法
WebDAV
HTTP
第12章 资源描述和Linked Data
RDF
RDF 将URL 作为URI 对待
什么时候使用描述策略
资源类型
RDF Schema
Linked Data 运动
JSON-LD
将JSON-LD 作为一种表述格式
Hydra
XRD 家族
XRD 和JRD
Web 主机元数据文档
WebFinger
本体动物园(Ontology Zoo)
schemaorg RDF
FOAF
vocaborg
总结:描述策略生机盎然!
第13章 CoAP: 嵌入式系统的REST
CoAP 请求
CoAP 响应
消息种类
延迟响应(Delayed Response)
多播消息(Multicast Message)
CoRE Link Format
结论:非HTTP 协议的REST
附录A 状态法典
附录B HTTP 报头法典
附录C 为API 设计者准备的Fielding 论文导读
词汇表
RESTful Web APIs中文版
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×