REST(表述性状态转移)是一种与DO(分布式对象)、RPC(远程过程调用)齐名的分布式应用架构风格(architectural
style)。REST诞生于Roy Fielding(HTTP 1.1协议的主要设计者)在2000年所著的博士论文
《Architectural Styles and the Design of Network-based Software
Architectures》(中文版名为《架构风格与基于网络的软件架构设计》)。REST正是Web自身的架构风格,它是理解Web架构的关键所
在,也是HTTP 1.1协议的设计原理,因此REST在Web开发领域的重要性是可想而知的。
客观来说,对于一线开发者来说,REST的概念是相当抽象的。与REST相比,一线开发者对于DO和RPC这两种架构风格理解起来要容易的多。而且一线
开发者更习惯于通过具体的代码例子来学习,而不是通过抽象的概念。这个问题造成了对于REST的大量误解,在其诞生之后的很多年中,REST一直给人以
一种“不接地气”或者“阳春白雪”的感觉。
在2005年之后,REST的受关注程度因为很多方面的因素被放大了:
1. Web 2.0的兴起
2. Ajax的兴起
3. Ruby on Rails的兴起
4. 云计算的兴起
5. 移动互联网的兴起
REST这种架构风格从小众走向大众,是近几年可以看到的一个明显趋势。
今天的Web早已不再仅仅是一个内容发布的平台,它已经发展成为了一个全球范围的计算平台。Web的消费者从以人类用户为主,发展到了人类用户(Web
应用)和程序用户(Web服务)并重。而开发Web服务,最佳选择就是RESTful Web Services(REST风格的Web服务),基于
SOAP/WSDL的旧式Web Services已经很少有人使用。
有人说,软件架构师应该从3万英尺的高度来思考软件系统的整体架构设计。那么,当整体架构设计(RESTful Web Services)基本确定之
后,一线开发者所处于的高度,相当于是3英尺,可以说立即陷入了刺刀见红的肉搏战之中。业界迫切期待一些实战性强的、面向一线开发者的REST开发图
书。在这类图书中,质量最高的要算是O'Reilly公司的REST开发系列图书,从2007年出版的《RESTful Web Services》开
始。
《RESTful Web Services Cookbook》可以看作是《RESTful Web Services》一书的姊妹篇。
《RESTful Web Services》这本书虽然不错,但是更多地还是为架构师而写的。对于一线开发者来说,这本书缺乏很多开发细节(“魔鬼藏
在细节中”),因此显得实战性不足。《RESTful Web Services Cookbook》恰好弥补了《RESTful Web
Services》在实战性方面的不足。
设计良好的REST开发框架,自从2005年Ruby on Rails 1.2版开始逐渐出现。REST开发的代码例子越来越多,Web开发者社区还
总结出了很多最佳实践。这些代码例子和最佳实践,需要有人加以收集和整理。《RESTful Web Services Cookbook》恰逢其时,
为此做出了重要贡献。本书可以说是Web服务开发者的一件百宝箱,其中的内容几乎涵盖了开发RESTful Web Services的所有方面。笔者
对于这本书有一种爱不释手的感觉,并且将其列为案头的常备图书之一。
通常对于新知识的认识过程是What、Why、How,《RESTful Web Services Cookbook》这本书并没有涉及到REST架
构风格的What和Why,全部内容讲的都是How。本书假设读者已经深入理解了REST架构风格,确信REST能够为当前开发的项目带来巨大好处,已
经准备挽起袖子干活了。如果读者想要深入理解REST架构风格的What和Why,可以参考O'Reilly公司的另外两本书:《RESTful
Web Services》和《REST in Practice》。
作为专业的Web开发者,让我们所开发的Web服务拥抱Web的架构风格,融入Web,成为Web的一部分!
李锟
2011年8月13日 于上海