BT

书评:《RESTful Web Services中文版》

作者 胡键 发布于 2008年6月5日 | 被首富的“一个亿”刷屏?不如定个小目标,先把握住QCon上海的优惠吧!

尽管REST在国内技术领域已算不上什么新鲜名词了,但是关于REST的中文资料并不多见。到目前为止,好像也就只有Roy Thomas Fielding博士论文的中译版。随着《RESTful Web Services中文版》的即将面世,这种REST中文资料奇缺的局面有望得到改善,该书也是目前国内出版的以REST为主题的第一本书籍。鉴于本书的原版也才于2007年5月出版,短短一年间就推出了中文版,不得不由人感叹国内出版社的效率。此外,由于出版商O'Reilly一贯的口碑,本书的质量自然令人期待。

《RESTful Web Services》全书对以下3个问题进行了回答:

  • 什么是RESTful服务
  • 如何设计和实现RESTful服务
  • RESTful服务的应用

什么是RESTful服务

这是本书前3章的主题。在这部分,作者从客户端的角度对Web服务进行了介绍,并指出了RESTful服务的特别之处。

在本书的第一章,《Programmable Web及其分类》。作者将常见的Web服务架构分成3类:

  • REST式、面向资源的架构
  • RPC式架构
  • REST-RPC混合架构

决定Web服务属于哪种分类的秘密在于以下两个问题的答案:

  1. 服务的方法信息是否出现在HTTP方法中?
  2. 服务的作用域信息是否出现在URI中?

两个极端的答案:全是和全否,分别对应REST式架构和RPC式架构。处于中间的则是REST-RPC混合架构。

对于Programmable Web一词感觉陌生的读者也不必为此介怀,这是一种按Web使用者分类的方式。顾名思义,Programmable Web是指供程序使用的Web,与之对应的另一词Human Web,其使用者即为人类。但是严格的说,人类也是通过程序(如浏览器)来对Web进行浏览,因此,Human Web实际是Programmable Web的特例。

本部分的其他两章分别对Web服务客户端的编写和RESTful服务特点进行了介绍,并举例说明了REST的一些重要概念:资源、表示、统一接口。

如何设计和实现RESTful服务

回答这个问题的第4~9章是本书的核心,而第4章《面向资源的架构(Resource-Oriented-Architecture,ROA)》则是该部分的核心。

提出ROA的目的,作者在前言中已经说得非常清楚:

我们通过制定这个面向资源的架构(ROA),把来自坊间传言(folklore)的经验提炼为Web服务设计的最佳实践(best practices)。

作者这样描述ROA:

ROA是一种把实际问题转换成REST式Web服务的方法:它令URI、HTTP和XML具有跟其他Web应用一样的工作方式,令人程序员们容易使用它。

在这一章中,作者介绍了ROA的功能组成:

  • 资源
  • 资源名称
  • 资源的表示
  • 资源间的连接

以及ROA的功能特性:

  • 可寻址性
  • 无状态性
  • 连通性
  • 统一接口

本部分的后续章节谈到了ROA的实践,分别介绍了面向资源的服务设计、服务实现、REST和ROA的最佳实践,以及服务的技术构件。

RESTful服务的应用

作为本书的最后部分,第10~12章以每章一个专题的形式介绍了RESTful服务的应用。这些专题是:

  • 面向资源架构 VS 大Web服务
  • 将Ajax作为REST客户端
  • REST式服务框架

对于第10章《面向资源架构 VS 大Web服务》,你或许会感到有些奇怪:只不过是架构的比较罢了,怎么算得上是专题应用?如果你认真地读过本书的前言,应该会看出些端倪。本章所讲的内容正是“应用REST”的前提:如何推荐REST?

结语

作为一本平民化的REST书籍,本书并没有仅仅停留在对一些实际问题的解答上。理论联系实践是对本书最好的概括。围绕作者提出的ROA,本书向读者展示了如何应用REST原则设计Web服务的方法,并试图在此之上对一些广为流传的经验教训加以总结、提升。对于目前REST缺乏公认最佳实践的现状,不失为一次有意义的尝试。

相信本书中文版的推出会对REST在国内进一步的发展起到促进作用。关于本书中文版的详细信息,请访问中文版的官方网站


博文视点还授权InfoQ中文站独家为大家提供额外的样章进行试读:欢迎下载第3章《REST式服务有什么不同》

相关阅读用Restlet创建面向资源的服务

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

好书 by Wang Chunshan

已经拿到手了,粗略翻了下,内容真的很好。不过大部分示例用ruby表达,如果有ruby基础,阅读体验会更好些。

这个书评太CCTV了 by Su Suave

不管怎样准备买来看看,书评确实内容有点单薄

在本书官方网站购买,可享受特别优惠。 by Xu Han

这是在开玩笑么? by 刘江 图灵

“短短一年间就推出了中文版,不得不由人感叹国内出版社的效率。”唉,最近审稿头痛,叹口气。

不知大家发现没有,许多好书的台湾版反而比我们出得早。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

4 讨论
提供反馈
错误报告
商务合作
内容合作
Marketing
InfoQ.com及所有内容,版权所有 © 2006-2016 C4Media Inc. InfoQ.com 服务器由 Contegix提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司 京ICP备09022563号-7 隐私政策
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.