RESTful Web Services中文版
分類: 图书,计算机/网络,程序设计,其他,
作者: (美)理查森(Richardson,L.)等著,徐涵等译
出 版 社: 电子工业出版社
出版时间: 2008-5-1字数: 590000版次: 1页数: 419印刷时间: 2008/05/01开本: 16开印次: 1纸张: 胶版纸I S B N : 9787121062278包装: 平装编辑推荐
“所有从事Web相关开发的人员都应阅读本书。”
——David}teinemeiei Heinsson,Rails框架发明人
“终于有一本书为我们制定了关于构建贴近而不是绕开Web理念的服务的路线图——这本书就是RESTful Web Services。”
——Adam Trachtenberg,PHP作家,eBay Web服务传道者
你已经知道如何构建面向人类用户的网站,但你知道如何构建面向计算机程序的网站吗?万维网(World wide Web)不仅仅是一个超大的分布式应用——它更是一个用于分布式计算的平台。Web服务、mashup及Ajax应用都把Web作为平台使用,而如今的Web服务技术却忽视了简单性这一Web赖以成功的重要特性,它们没有遵从Web的理念,自然也不具有Web的优势。
本书要让Web服务回归“Web”的理念。它向你展示了如何用你日常使用的技术来访问programmable web,此处的关键是REST——它是支撑Web的架构风格。本书:
强调Web基础技术——HTTP应用协议、uRI命名标准,以及xML标记语言——的强大能力
介绍了面向资源的架构(Resource-Oriented Architecture,ROA),即一组用于设计REST式Web服务的原则揭示了REST式设计为何比RPC式设计更简单、更具多功能性及可伸缩性
给出了REST式Web服务的真实案例,比如Amazon s3和Atom发布协议
讨论了各种流行的编程语言的Web服务客户端
展示了如何用三种流行的框架——Ruby on Rails、Restlet(Java)和Django(Python)——实现REST式服务
聚焦实际问题,比如如何设计与实现REST式Web服务及客户端
《RESTful Web Services 中文版》是一本将REST设计理念应用于真实Web服务的书,它向你提供了一些成功设计所需的最佳实践,以及把设计转化为代码所需的技巧。你可以利用Web的强大能力来构建可编程应用——只要你遵从Web的理念,而不是违反它。本书向你解释了具体做法。
内容简介
本书向读者介绍了什么是REST、什么是面向资源的架构(Resource-Oriented Architecture,ROA)、REST式设计的优点、REST式Web服务的真实案例分析、如何用各种流行的编程语言编写Web服务客户端、如何用三种流行的框架(Ruby on Rails、Restlet和Django)实现REST式服务等。不仅讲解REST与面向资源的架构(ROA)的概念与原理,还向读者介绍如何编写符合REST风格的Web 2.0应用。本书详实、易懂,实战性强,提供了大量RESTful Web服务开发的最佳实践和指导,适合广大的Web开发人员、Web架构师及对Web开发或Web架构感兴趣的广大技术人员与学生阅读。
作者简介
Leonard Richardson(http://www.crummy.com/)是《Ruby Cookbook》(O’Reilly)和包括Beautiful Soup 在内的若干开源库的作者。他是加利福利亚人,现在纽约生活。
目录
序
前言
第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报头
标准报头
非标准报头
索引
书摘插图
第1章:Programmable Web及其分类
在编写计算机程序时,并非只能使用自己设计的算法,你还可以使用编程语言标准库里的算法;另外,也可以从相关图书或第三方库里找到更多的算法。除非在做非常前沿的东西,否则一般不必自己设计算法。
运气好的话,数据也能找到现成的。某些应用是完全由用户所提供数据驱动的。有时,获得数据是轻而易举的。
……