本书向读者介绍了什么是REST、什么是面向资源的架构(Resource- Oriented Architecture,ROA)、REST式设计的优点、REST式Web服务的真 实案例分析、如何用各种流行的编程语言编写Web服务客户端、如何用三种 流行的框架(Ruby on Rails、Restlet和Django)实现REST式服务等。不仅 讲解REST与面向资源的架构(ROA)的概念与原理,还向读者介绍如何编写符 合REST风格的Web 2.0应用。本书详实、易懂,实战性强,提供了大量RES 了fulWeb服务开发的*佳实践和指导,适合广大的Web开发人员、Web架构 师及对Web开发或Web架构感兴趣的广大技术人员与学生阅读。
......(更多)
......(更多)
序
前言
第1章:Programmable.Web及其分类
Programmable.Web的分类
HTTP:信封里的文档
方法信息
作用域信息
相互竞争的服务架构
Programmable.Web涉及的技术
其他术语
第2章:编写Web服务客户端
Web服务就像网站
del.icio.us:示例应用
用HTTP库发送请求
用XML解析器处理响应
JSON.Parsers:处理序列化数据
WADL简化客户端的编写
第3章:REST式服务有什么特别不同?
介绍Simple.Storage.Service
S3的面向对象设计
资源
HTTP响应代码
一个S3客户端
对请求进行签名及访问控制
使用S3客户端库
用ActiveResource创建透明的客户端
*后的话
第4章:面向资源的架构
面向资源的架构?
什么是资源?
URIs
可寻址性
无状态性
表示
链接与连通性
统一接口
结束了!
第5章:设计只读的面向资源的服务
资源设计
根据需求创建只读资源
规划数据集
把数据集划分为资源
命名资源
设计表示
把资源相互链接起来
HTTP响应
小结
第6章:设计可读写的面向资源的服务
将用户账户作为资源
自定义地点
回顾地图服务
第7章:一个服务实现
一个社会性书签Web服务
规划数据集
资源设计
设计来自客户端的表示
设计发给客户端的表示
把资源相互链接起来
会有哪些典型的事件经过?
可能出现哪些错误情况?
控制器代码
模型代码
客户端需要知道什么?
第8章:REST和ROA*佳实践
面向资源的基础
一般的ROA设计步骤
可寻址性
状态与无状态性
连通性
统一接口
一些重要方面
资源设计
URI设计
返回的表示
收到的表示
服务的版本化
**URIs.vs可读的URIs
HTTP的标准特性
仿造PUT和DELETE
Cookies的问题
用户凭什么信任HTTP客户端?
第9章:服务的技术构件
表示格式
预定义的控制流
超媒体技术
第10章:面向资源的架构VS大Web服务
大Web服务试图解决哪些问题?
SOAP
WSDL
UDDI
安全性
可靠消息传递
事务
BPEL、ESB和SOA
小结
第11章:将Ajax应用作为REST客户端
从AJAX到Ajax
Ajax架构
一个del.icio.us示例
Ajax的优点
Ajax的缺点
REST*好
发送请求
处理响应
JSON
不要私享REST的好处
跨浏览器问题和Ajax库
颠覆浏览器安全模型
第12章:REST式服务框架
Ruby.on.Rails
Restlet
Django
小结
附录A:REST相关资源与REST式资源
标准与指南
你可以使用的服务
附录B:42种常见的HTTP响应代码
三至七种*基本的响应代码
1xx:通知
2xx:成功
3xx:重定向
4xx:客户端错误
5xx:服务器端错误
附录C:常见的HTTP报头
标准报头
非标准报头
索引
......(更多)
但是,REST并不是一种架构,而是一组设计原则。你可以讲“在遵守这些原则方面,一个架构做得比另一个架构好”,但是你不能讲“REST架构”,因为不存在一个叫“REST架构”的东西。
对于一个REST式Web服务,它会在HTTP方法里寻找方法信息,在URI里寻找作用域信息。
......(更多)