RESTful Web Services Cookbook中文版
[美]Subbu Allamaraju(沙布·阿拉马拉尤)著
丁雪丰 译
ISBN 978-7-121-14390-8
2011年9月出版
定价:59.00元
16开
320页
内 容 简 介
本书是《RESTful Web Services Cookbook》的中文翻译版。
本书从实践出发,涉及设计RESTful Web服务的各个方面,通过问题描述、解决方案、问题讨论的形式在14个章节中详细讨论了统一接口、资源、表述、URI、链接、请求、缓存、安全等诸多内容。无论读者是否设计过RESTful Web服务,具体使用哪种语言,都能在阅读过程中有所收获。本书也可作为手册,根据具体问题描述在书中查找解决办法。
前 言
2000年,HTTP和URI的关键贡献者Roy Fielding在题为“Architectural Styles and the Design of Network-Based Software Architectures”注 的博士论文中精确地阐述了Web的架构。在这篇论文中,他引入了一种名为表述性状态转移注 (Representational State Transfer,REST)的架构风格。抽象地说,这种风格描述了World Wide Web的基础,其组成技术包括Hypertext Transfer Protocol(HTTP)、Uniform Resource Identifier(URI)、类似HTML和XML的标记语言以及类似JSON这样的适用于Web的格式。
REST是一种面向网络化应用程序的架构风格,其中包含了很多用于描述分离关注点、可见性、可靠性、可扩展性、性能等诸多方面的约束。附录B是对这些约束的一个简单概述。Web的基础设施使得开发者倾向于用REST来构建分布式的、去中心化的客户端/服务器应用程序。在这些基础设施上部署Web服务让你可以利用众多已有的基础设施,其中包括Web服务器、客户端库、代理服务器、缓存、防火墙等。尽管从理论上来说,能够脱离HTTP来构建RESTful的应用程序,但这样做的代价很大。在本书中,RESTful Web服务指的是通过HTTP,URI,XML,JSON和Atom等技术构建的Web服务。
本书范围
本书并非针对REST的论文,也不是在描述它相对于其他架构风格的优点,而是为RESTful Web服务的设计者和开发者提供的一本指南。
目前已经有大量描述REST架构风格的材料了。Wikipedia关于表述性状态转移的条目(http://en.wikipedia.org/wiki/Representational_State_Transfer)中提供了REST基础概念的精确描述、约束、设计应用程序的指导原则。Leonard Richardson和Sam Ruby的“RESTful Web Services”(O’Reilly)注 更深入地探讨了这个主题,详细讲述了如何将资源用做核心构建部件。但在日常的设计与实现中遇到了问题该如何获取帮助呢?本书就是来弥补这个空缺的。
本书由多个用于帮助设计及实现RESTful客户端/服务器应用程序的技巧组成,无论你的Web服务是否是RESTful的,它们都能帮你利用好Web基础设施和REST。每个小节都包含一个或多个问题描述和一个解决方案,随后的详细讨论中有例子、关于实现的讨论和所涉及的各种权衡考虑。
书中的多数材料都基于开发RESTful Web服务时遇到的常见设计问题,包括HTTP使用、资源和表述设计、URI、缓存、并发控制、部分更新(partial updates)、批处理、事务、安全、版本控制、兼容性等内容。
本书并不特定于某种编程语言,其中使用HTTP请求和响应消息来说明实现。你可以用C#,C++,Java,Ruby,Python,PHP和Perl这样的语言来进行实现。附录A里有一个针对特定语言的图书列表,你也可以去你喜欢的书店找找。
本书也不涉及安装、管理或保护Web服务器、缓存及代理。可以参考Ken Coar和Rich Bowen的“Apache Cookbook”注 、Ivan Ristic的“Apache Security”和Duane Wessels的“Squid: The Definitive Guide”注 (全由O’Reilly出版),或者产品手册来了解相关主题。
辅助材料
访问http://www.restful-webservices-cookbook.org可获得关于本书的附加材料、勘误、评论与问题。
下面这些资源十分有用:
REST-Discuss Yahoo! Group(http://tech.groups.yahoo.com/group/rest-discuss)
如果你有REST架构风格相关的问题,可以检索该讨论组的存档。更好的做法是加入讨论组,发表你的问题,参与有关REST优缺点、常见问题和针对RESTful Web服务的HTTP用法的讨论。
Leonard Richardson和Sam Ruby的“RESTful Web Services”(O’Reilly)
阅读此书可更多地了解REST以及如何使用Web作为构建RESTful Web服务的平台。
RESTwiki(http://rest.blueoxen.net/cgi-bin/wiki.pl)
该Wiki中收录了多年来编写的描述REST多个方面及其应用程序的文章。
Chris Shiflett的“HTTP Developer’s Handbook”(Sams)
如果你在客户端或服务器端应用程序中使用HTTP时遇到问题,可以阅读此书。
毫无疑问,会有本书以及之前讨论到的资源中没有涵盖到的设计与实现问题,请访问http://www.restful-webservices-cookbook.org发表你的问题、建议或者是你成功实施过的其他解决方案。在适当的时候,该站点将包含更多技巧,并且它们将被收入本书的下一个修订版中。