RESTful Web Services(影印版)
RESTful Web Services(影印版)
Leonard Richardson, Sam Ruby
出版时间:2007年12月
页数:419
“每一位Web开发者都需要阅读这本书。”
—— David Heinemeier Hansson,Rails框架创始人

“《RESTful Web Services》为构建包含Web的Service提供了一张具有实际意义的发展路线图,而不是绕着目标兜圈子。”
—— Adam Trachtenberg,PHP作者及eBay公司Web Service传道者

你也许曾经建立过可供他人使用的网站,但是,你能否创建可供机器使用的网站?万维网(World Wide Web)不仅仅只是一个巨大的分布式应用——应该把它视为一个分布式计算平台。Web Service、聚合(mashup)和Ajax应用都以Web作为平台。而今天的Web Service技术早已失去了Web赖以成功的简洁性,它们并不像Web那样工作,并且正日益丧失其原有的优势。

本书让“Web”回归Web Service。它阐述了如何以你日常所使用的技术访问可编程的Web。其关键就在于REST,它是驱动Web的架构样式。本书包括以下内容:
· 强调Web基础技术的力量——HTTP应用协议、URI命名标准与XML标记语言
· 介绍面向资源的架构(ROA),设计RESTful Web Service的常识规则集合
· 揭示RESTful的设计如何比远程过程调用(RPC)更为简单、具有更多功能以及扩展性
· 包含RESTful Web Service的真实案例,如Amazon的简单存储服务与Atom发布协议等
· 探讨各种流行编程语言的Web Service客户端
· 展示如何用三种流行框架实现RESTful Service——Ruby on Rails、Restlet(基于Java)和Django(基于Python)
· 关注实际问题,诸如怎样设计和实现RESTful Web Service与客户端等

《RESTful Web Services》是对真实Web Service运用REST设计哲学的第一本书。它为你的成功设计树立了最佳实践典范,也为你提供了将设计转化为代码所需的技术。你不妨充分利用可编程Web的力量——只要与Web合作而不是与之抵抗。本书将教会你一切。
  1. Foreword
  2. Preface
  3. 1. The Programmable Web and Its Inhabitants
  4. Kinds of Things on the Programmable Web
  5. HTTP: Documents in Envelopes
  6. Method Information
  7. Scoping Information
  8. The Competing Architectures
  9. Technologies on the Programmable Web
  10. Leftover Terminology
  11. 2. Writing Web Service Clients
  12. Web Services Are Web Sites
  13. del.icio.us: The Sample Application
  14. Making the Request: HTTP Libraries
  15. Processing the Response: XML Parsers
  16. JSON Parsers: Handling Serialized Data
  17. Clients Made Easy with WADL
  18. 3. What Makes RESTful Services Different?
  19. Introducing the Simple Storage Service
  20. Object-Oriented Design of S3
  21. Resources
  22. HTTP Response Codes
  23. An S3 Client
  24. Request Signing and Access Control
  25. Using the S3 Client Library
  26. Clients Made Transparent with ActiveResource
  27. Parting Words
  28. 4. The Resource-Oriented Architecture
  29. Resource-Oriented What Now?
  30. What's a Resource?
  31. URIs
  32. Addressability
  33. Statelessness
  34. Representations
  35. Links and Connectedness
  36. The Uniform Interface
  37. That's It!
  38. 5. Designing Read-Only Resource-Oriented Services
  39. Resource Design
  40. Turning Requirements Into Read-Only Resources
  41. Figure Out the Data Set
  42. Split the Data Set into Resources
  43. Name the Resources
  44. Design Your Representations
  45. Link the Resources to Each Other
  46. The HTTP Response
  47. Conclusion
  48. 6. Designing Read/Write Resource-Oriented Services
  49. User Accounts as Resources
  50. Custom Places
  51. A Look Back at the Map Service
  52. 7. A Service Implementation
  53. A Social Bookmarking Web Service
  54. Figuring Out the Data Set
  55. Resource Design
  56. Design the Representation(s) Accepted from the Client
  57. Design the Representation(s) Served to the Client
  58. Connect Resources to Each Other
  59. What’s Supposed to Happen?
  60. What Might Go Wrong?
  61. Controller Code
  62. Model Code
  63. What Does the Client Need to Know?
  64. 8. REST and ROA Best Practices
  65. Resource-Oriented Basics
  66. The Generic ROA Procedure
  67. Addressability
  68. State and Statelessness
  69. Connectedness
  70. The Uniform Interface
  71. This Stuff Matters
  72. Resource Design
  73. URI Design
  74. Outgoing Representations
  75. Incoming Representations
  76. Service Versioning
  77. Permanent URIs Versus Readable URIs
  78. Standard Features of HTTP
  79. Faking PUT and DELETE
  80. The Trouble with Cookies
  81. Why Should a User Trust the HTTP Client?
  82. 9. The Building Blocks of Services
  83. Representation Formats
  84. Prepackaged Control Flows
  85. Hypermedia Technologies
  86. 10. The Resource-Oriented Architecture Versus Big Web Services
  87. What Problems Are Big Web Services Trying to Solve?
  88. SOAP
  89. WSDL
  90. UDDI
  91. Security
  92. Reliable Messaging
  93. Transactions
  94. BPEL, ESB, and SOA
  95. Conclusion
  96. 11. Ajax Applications as REST Clients
  97. From AJAX to Ajax
  98. The Ajax Architecture
  99. A del.icio.us Example
  100. The Advantages of Ajax
  101. The Disadvantages of Ajax
  102. REST Goes Better
  103. Making the Request
  104. Handling the Response
  105. JSON
  106. Don't Bogart the Benefits of REST
  107. Cross-Browser Issues and Ajax Libraries
  108. Subverting the Browser Security Model
  109. 12. Frameworks for RESTful Services
  110. Ruby on Rails
  111. Restlet
  112. Django
  113. A. Some Resources for REST and Some RESTful Resources
  114. Standards and Guides
  115. Services You Can Use
  116. B. The HTTP Response Code Top 42
  117. Three to Seven Status Codes: The Bare Minimum
  118. 1xx: Meta
  119. 2xx: Success
  120. 3xx: Redirection
  121. 4xx: Client-Side Error
  122. 5xx: Server-Side Error
  123. C. The HTTP Header Top Infinity
  124. Standard Headers
  125. Nonstandard Headers
  126. Index
书名:RESTful Web Services(影印版)
国内出版社:东南大学出版社
出版时间:2007年12月
页数:419
书号:978-7-5641-0960-8
原版书出版商:O'Reilly Media
Leonard Richardson
 
Leonard Richardson, 《Ruby Cookbook》 (O’Reilly)一书的作者,曾 创建了包括Beautiful Soup在内 的多个开源代码库。
 
 
Sam Ruby
 
Sam Ruby是一位著名的软件开发者,他为Apache软件基金会的许多开源项目作出了重大贡献,另外他还通过参与Atom web feed标准及流行的Feed Validator Web服务的设计为web feeds的标准化作出了贡献。他目前就职于IBM新兴技术组(Emerging Technologies Group),任资深技术主管(Senior Technical Staff Member)。他居住在北卡罗来纳州罗利市。
Sam Ruby is a prominent software developer who has made significant contributions
to many Apache Software Foundation open source projects, and to the standardization
of web feeds via his involvement with the Atom web feed standard and the popular
Feed Validator web service. He currently holds a Senior Technical Staff Member position
in the Emerging Technologies Group of IBM. He resides in Raleigh, North
Carolina.
 
 
The animal on the cover of RESTful Web Services is a vulpine phalanger (P. vulpina).
Phalanger is the general term given to animals of the Phalangeridae family, which includes possums and cuscuses. (One should not confuse the Australian possum with the American opossum; they are both marsupials, but very different.) The term phalanger is derived from the Greek word phalanges, which means finger or toe bone. The omnivorous phalanger uses its claw-fingered paws (with opposable thumbs) to climb,hunt, and live in trees. Phalangers are found in the forests of Australia, New Zealand,Tasmania, and some Indonesian islands. Like the most famous marsupial, the kangaroo,female phalangers carry their young around in a front pouch after birth.
Phalanger is also the name of a PHP complier project for the .NET framework.