《RESTful Web APIs中文版》

摘要:
你将探索REST背后的概念,学习多种可用于创建基于超媒体API的策略,并在本书一步步的指导下整合你所学到的所有内容,从而去设计RESTful的webAPI。√理解在嵌入式系统使用REST的CoAP协议。《restfulwebapis中文版》极具权威性与前瞻性,既代表了api领域的最前沿趋势,也覆盖了api领域的最重要实践。《restfulwebapis中文版》适合所有从事web开发和架构工作的读者阅读参考。媒体评论“这是一本了不起的书!《RESTfulWebAPIs》覆盖了当今API领域最重要的趋势和实践。”

《RESTful Web APIs中文版》

基本信息

原书名:RESTful Web APIs

原出版社: O'Reilly Media

作者: Leonard Richardson Mike Amundsen

译者: 赵震一 李哲

出版社:电子工业出版社

ISBN:9787121231155

上架时间:2014-6-11

出版日期:2014 年6月

开本:16开

页码:382

版次:1-1

所属分类:计算机 > 计算机网络 > Web Server > WebServer

《RESTful Web APIs中文版》第1张

更多关于》》》《RESTful Web APIs中文版》

编辑推荐

近年来,REST的流行导致了各种“RESTful”API的巨大增长,但是这些API却错失了很多架构的好处。通过这本实用指南,你将可以学习到如何设计可用的,并能随着时间不断进化的REST API。通过专注于跨多种领域的解决方案,本书向你展示了该如何使用那些为世界上最成功的分布式计算系统——万维网而设计的工具,从而来 创建强大且安全的应用。你将探索REST背后的概念,学习多种可用于创建基于超媒体API的策略,并在本书一步步的指导下整合你所学到的所有内容,从而去设计RESTful的web API。

√ 审查了包括集合模式和纯超媒体在内的API设计策略。

√ 理解如何将超媒体与表述整合进一个一致的API。

√ 探索XMDP和ALPS profile格式是如何帮助你应对web API的“语义挑战”的。

√ 学习近二十多种标准化的超媒体数据格式。

√ 应用在API实现中使用HTTP的最佳实践。

√ 使用JSON-LD标准及其他Linked Data方法来创建web API。

√ 理解在嵌入式系统使用REST的CoAP协议。

内容简介

书籍

计算机书籍

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

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

媒体评论

“这是一本了不起的书!《RESTful Web APIs》覆盖了当今API领域最重要的趋势和实践。”

——John Musser ProgrammableWeb创始人

作译者

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

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

目录

《restful web apis中文版》

序 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

本图书信息来源:互动出版网

免责声明:文章转载自《《RESTful Web APIs中文版》》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决 eclipse svn插件 状态图标不显示一种MemoryStream的替代方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iris 框架在服务端解决跨域问题

1. 编写中间件,将允许跨域的header添加到响应头 //Cors funcCors(ctxiris.Context){ ctx.Header("Access-Control-Allow-Origin","*") //ctx.Header("Access-Control-Allow-Headers","DNT,X-Mx-ReqToken,Keep-Al...

web优化之js动态合并 动态压缩 去掉js重复引用 js缓存 js延迟加载

做web前段也有一段时间了,对于web中js文件的加载有些体会想跟大家一起分享一下。 1.首先说说js文件的合并和压缩吧 为了便于集中式管理js的合并和压缩我们创建一个Js.ashx文件来专门处理合并压缩,这里我们借用Yahoo.Yui.Compressor工具来压缩我们的js文件 代码如下: public classJs : IHttpHandler...

基于querybuilder的可根据现有数据表自动生成Restful API的dotnet中间件

AutoApi 基于SqlKata Query Builder的可根据数据表自动生成Restful API的dotnet中间件 项目地址 GithubGitee 支持的数据库 MySql AutoApi.MySql SqlServer AutoApi.SqlServer PostgreSQL AutoApi.PostgreSQL Oracle Au...

本体【Ontology】综述

原文地址:http://blog.csdn.net/moonsheep_liu/article/details/22329873 本体作为一种能在语义和知识层次上描述领域概念的建模工具,其目标是捕获相关领域的知识,确 定该领域内共同认可的词汇,通过概念之间的关系来描述概念的语义,提供对该领域知识的共同理解。语义Web(the Semantic Web)是在...

精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件

精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件 内容简介:本文介绍 Spring Boot 的配置文件和配置管理,以及介绍了三种读取配置文件的方式,并进行代码演示。 在 Spring Boot 出现之前,一个 Spring 项目普遍会存在很多个配置文件,例如有配置与 web 服务器相关信息的 w...

WebApi返回Json格式字符串

WebApi返回json格式字符串, 在网上能找到好几种方法, 其中有三种普遍的方法, 但是感觉都不怎么好.  先贴一下, 网上给的常用方法吧. 方法一:(改配置法)  找到Global.asax文件,在Application_Start()方法中添加一句: protected void Application_Start() { Area...