Advanced Search
Start Your Free Trial

Overview

Other Readers Also Read...

Top Sellers in this Category

"Every developer working with the Web needs to read this book." -- David Heinemeier Hansson, creator of the Rails framework "RESTful Web Services finally provides a practical roadmap for constructing services that embrace the Web, instead of trying to route around it." -- Adam Trachtenberg, PHP author and EBay Web Services Evangelist You've built web sites that can be used by humans. But can you also build web sites that are usable by machines? That's where the future lies, and that's what RESTful Web Services shows you how to do. The World Wide Web is the most popular distributed application in history, and Web services and mashups have turned it into a powerful distributed computing platform. But today's web service technologies have lost sight of the simplicity that made the Web successful. They don't work like the Web, and they're missing out on its advantages. This book puts the "Web" back into web services. It shows how you can connect to the programmable web with the technologies you already use every day. The key is REST, the architectural style that drives the Web. This book:

  • Emphasizes the power of basic Web technologies -- the HTTP application protocol, the URI naming standard, and the XML markup language

  • Introduces the Resource-Oriented Architecture (ROA), a common-sense set of rules for designing RESTful web services

  • Shows how a RESTful design is simpler, more versatile, and more scalable than a design based on Remote Procedure Calls (RPC)

  • Includes real-world examples of RESTful web services, like Amazon's Simple Storage Service and the Atom Publishing Protocol

  • Discusses web service clients for popular programming languages

  • Shows how to implement RESTful services in three popular frameworks -- Ruby on Rails, Restlet (for Java), and Django (for Python)

  • Focuses on practical issues: how to design and implement RESTful web services and clients

This is the first book that applies the REST design philosophy to real web services. It sets down the best practices you need to make your design a success, and the techniques you need to turn your design into working code. You can harness the power of the Web for programmable applications: you just have to work with the Web instead of against it. This book shows you how.

Amazon.com® Reader Reviews (Ranked by Helpfulness)

Average Amazon.com® Rating: 4.5 out of 5 rating Based on 41 Ratings

A ReST Manifesto - 2009-05-23
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
This is both a manifesto for what the authors term 'REST-Oriented Architecture' (ROA), and a technical dive into the mechanics and semantics of REST. It comes as a big breath of fresh air after years of being harangued by the putative benefits of Service-Oriented Architecture (SOA) with its plethora of web-service standards centered on XML, SOAP, and WSDL, and the many competing and largely incompatible SOA toolkits.

REST (or ReST) stands for 'Representational State Transfer', a term and concept introduced by Roy Fielding nearly a decade ago. The basic idea is that, in current practice, the www consists in large part of interconnected resources where the connections are implemented by the basic HTTP methods of GET and POST, and resource representation is typically HTML, heavily annotated and marked-up, and difficult to work with programmatically. But HTTP, combined with suitably chosen URIs, and combined with more program-oriented representations such as XML and JSON, can provide us the combined advantages of the interconnected web and programmable 'services'.

In the ReST model the HTTP methods (GET, PUT, POST, DELETE, and maybe HEAD) are the only methods that would be exposed by a web 'service'. The service exposes URI (universal resource identifiers) for each of the resources provided by the service (a possibly unbounded set of resources), and the methods are applied to those URIs. Each resource can have one or many representations - for example, as XML, JSON, HTML, PDF, etc. There are multiple ways of selecting a representation: for example, adding an 'Accept' header to the HTTP request, or adding some kind of 'qualifier' to the basic URI (for example, a .xml or .pdf suffix).

Representations can (and in the view of the authors, should) provide links to related resources - in fact this ability to link to other resources is the source of much of the power and attractiveness of the ReST model. This ability to identify resources by URI sets ROA apart from SOA. As the authors note, an SOA application normally has few URIs, sometimes only one. So it is literally impossible for the result of a service call to identify the related entities (I can't call them resources) for that call. Instead, the client-side programmer must understand the documentation (possibly by poring over the service's WSDL description) to know how to accomplish any given task. Unless the service designers used great care, the service calls within the SOA application bear little relationship to one another, so understanding some portion of the API provides no great insight into the remainder of the API. The situation is (or can be) different in an ROA application: knowing the set of basic resource types gives immediate knowledge of how to access any particular resource instance. Knowing the relationships between resources (for example, which resources are containers, which resource types are related to other resource types) gives knowledge of how to 'navigate' the application - without the service provider having to document every detail of that navigation.

This is exciting stuff. But there are many challenges. At the low end of the scale, there is the issue that browsers know only the GET and POST methods - not DELETE, PUT, and HEAD. So POST has to be overloaded to provide the functionality of PUT and DELETE. At the top end of the scale, it is not clear in any given case what resources should be exposed and what their representation should be. We need a book entitled 'Resource Oriented Design Patterns' to fill this gap.

In the meantime, RESTful Web Services is a terrific guide to developing web applications.

eye opener - 2009-11-07
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
RESTful Web Services is one of the best books I have recently read. Before starting reading I have attended a few presentations on REST and I naively thought I became quite familiar with it. Now I can see how ignorant I was about it...
This book really helped me to deeply understand what REST is all about and why it is becoming so popular. The book can be thought of as a full featured, professional, step by step tutorial to REST world: starting from basic "programmable web" concepts to in-depth discussion of Roy Fielding's Representational State Transfer (REST) ideas and finally Resource Oriented Architecture (ROA). The book covers some theory but (what was the most important for me) it mainly focus on practical aspects of REST by presenting a multiple of practical advices, recipes (and gotchas) to help one design and build scalable web services. If you plan to build web services please read this book first.

Nice book for developers with Ruby experience - 2009-11-17
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
It is a good buy for developers who have an experience playing around with ruby code because most of the code snippets in the book is coded in ruby. It does have java snippets but very few.

This book does cover some good aspects of restlet but don't get into any security aspects also it is little outdates at this point because it does not cover any of the JAX-RS implementations(Jersey or RestEasy).

liked it - 2009-09-08
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
Havent gone through the entire book but first few chapters are really good in explaining what is restful services.. good for beginners

Very interesting - 2009-08-08
Reviewer Rating: 1 star rating2 star rating3 star rating4 star rating5 star rating
This book is very interesting and made me realized a lot of stuff about how we sould use the web (as it was designed and why we should respect more the RFC 2616). But unfortunately (from my point of view) the writers choose ruby as their default languages for the examples (even if some of them are also in python, php, java ...).
If you are a ruby fan and interested about RESTful web services, this book is for you

Some information on this page was provided using data from Amazon.com®. View at Amazon >


About Safari Books Online • Terms of Service • Privacy Policy • Contact Us • Corporate Licenses • Help • Accessibility | See us on FacebookSee us on Linked InSee us on TwitterRSS

Copyright 2009 Safari Books Online. All rights reserved.