Jump to ratings and reviews
Rate this book

REST in Practice: Hypermedia and Systems Architecture

Rate this book
Why don't typical enterprise projects go as smoothly as projects you develop for the Web? Does the REST architectural style really present a viable alternative for building distributed systems and enterprise-class applications? In this insightful book, three SOA experts provide a down-to-earth explanation of REST and demonstrate how you can develop simple and elegant distributed hypermedia systems by applying the Web's guiding principles to common enterprise computing problems. You'll learn techniques for implementing specific Web technologies and patterns to solve the needs of a typical company as it grows from modest beginnings to become a global enterprise.

446 pages, Paperback

First published January 1, 2010

105 people are currently reading
1067 people want to read

About the author

Jim Webber

12 books5 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
115 (23%)
4 stars
208 (43%)
3 stars
126 (26%)
2 stars
25 (5%)
1 star
6 (1%)
Displaying 1 - 30 of 43 reviews
Profile Image for Michael Finocchiaro.
Author 3 books6,203 followers
December 21, 2020
This book was EXCELLENT! I loved learning how powerful the HTTP protocol is for APPLICATIONs and not just for data transport. Easy to read with examples and a great sample application, anyone that wants to design agile, powerful and open applications should be using REST and exploiting HTTP to the fullest, otherwise they will be creating needless headaches for themselves. A fantastic book!

Just reread this for work. Somewhat unsure of what is still relevant and what is obsolete though...
Profile Image for Barbara Krein.
12 reviews
October 1, 2019
These BOOKS are great. Really easy to read and understand, but not too boring. A GREAT foundation and/or a refresher.
Profile Image for Ahmad hosseini.
320 reviews73 followers
May 5, 2019
Book tries to proof that web is a good platform for building enterprise systems. So it examines different aspect of web such as security, performance, and scalability to show this reality. The book can help you understand the details of the HTTP and using caching in your software in right way.
There is good examples and codes to show how you can use web to build enterprise systems. Book codes are based on Java and .NET.
Profile Image for Kirill.
78 reviews14 followers
January 8, 2015
A very good book with perfect combination of design considerations and implementation details. Different aspects of REST design are gradually introduced and explained in connection with the Richardson maturity model. Examples are especially good and show some nifty ideas and pleasant code structure.

The book was issued in 2010. All the design ideas are surely still apply. But it is nice to see the development of Web formats and protocols since that time, like evolution of RDF-related formats or consolidation of OpenID and OAuth in OpenID Connect. (for detailed insight into hypermedia formats I would recommend the "RESTful Web APIs")

The comparison of Web-Services and REST could be very useful to present REST architecture to Web-Service addicted teams.
Profile Image for Lyubomir Galabov.
5 reviews1 follower
November 17, 2018
I think it is a good book after all, but it definitely needs a second edition to accommodate all the new things going on like JSON, OAuth2, JWT, etc. Most of the examples are outdated, but still common out in the wild, but yet I really would appreciate a "contemporary" revisited edition! Besides that, the example feels kind of "straight forward", whereas in our everyday life we see edge cases that require great deal of expertise. Thereby, a set of examples would do a better job compared to Restbucks, like for example techniques or patterns to translate verb-phrase actions into resource state endpoints.
Overall it is a valuable book, but then again it needs to be revisited!
Profile Image for Ash Moran.
79 reviews40 followers
January 2, 2012
I've found this immensely useful for understanding the REST principles that underpin software written for web.

The book starts by describing the levels of the Richardson Maturity Model, from tunnelling RPC calls over HTTP, to full hypermedia systems. There's quite a thorough description of the use of URIs, HTTP methods (GET, POST, PUT etc), media types, conditional requests (eg how to PUT a resource only if its ETag header indicates it has not been modified), and server response codes (far beyond simple 200, 404 and 500s). The REST tools are used to build an online machine-driven coffee ordering system (Restbucks) where the client is led through the business process by hypermedia links generated on the server.

There's a chapter on caching which completely changed my understanding of the subject: rather than being an after-the-fact optimisation, caching is fundamental to the design of HTTP systems, especially to achieve high load with only moderate latency.

The authors then continues to implement parts of the Restbucks system by using the Atom syndication and publication formats. Previously I've only used Atom to subscribe to blog feeds, but the book does a good job of showing its power as a full publishing system, with excellent hypermedia controls. This is also where they introduce the concept of media type composition: embedding one media type inside another. Here, this is embedding documents of type application/vnd.restbucks+xml inside application/atom+xml, which allows a clean separation between the two protocols and concerns. I did wonder at points if they were stretching a little too far the problem domain of Atom to model the specific Restbucks business process, but it serves as a good example of re-using a well-established protocol. The authors favour the re-use of standard protocols as this gives you access to an ecosystem of tools and libraries to inspect the resources. (The broadest example being using XHTML for resources, as then even a human being in a browser can navigate the domain application protocol.)

There's a fairly detailed look at security, using OpenID and OAuth to identify users and authorise access to third party resources. Again, the Restbucks domain is nicely extended with a third party voucher service, and the full protocol for authorisation is worked through.

The only part of the book I thought was of questionable value was on semantics (RDF, OWL etc). There weren't any compelling applications of this nor examples of systems already benefitting from them. That said, it's only a short chapter.

There are liberal code examples. Perhaps because I wasn't working through them while I was reading it, but I often found the code examples too long to follow, and I had to jump backwards and forwards a lot to keep the flow. This isn't helped a lot by the fact some examples are followed by a tedious narrative (especially the early ones) which only serve to repeat what the code said. But then, many other examples have pertinent points clearly highlighted. I'm hesitant to be too critical because creating short but realistic code examples is always hard.

Overall I'm glad I've read this. I found it a bit of an effort to get through, but I've learnt a lot, and I'll certainly be referring to this as I try to implement better web systems. The real test will be how much of the book I consider invaluable in a year's time. I highly recommended to this to any web developer, as it has either changed or massively clarified many of the things I thought I knew about the machine web.
Profile Image for Michael.
10 reviews7 followers
February 13, 2011
A good book, though not particularly enjoyable to read. The material presented is good, but there's not tons of style or personality to keep you going through the 350 pages. Still, I learned a bunch and corrected some misconceptions I had about REST, so I would say it was worth my time.
Profile Image for Peter De Kinder.
205 reviews2 followers
December 18, 2020
The World Wide Web (WWW) and its underlying architectural style of REpresentational State Transfer (REST), is a hugely successful application platform with an unprecedented adoption scope. As such, it will come as no surprise that architects will look at this structure and attempt to distill the factors that made it so successful and apply these to similar systems. This is what REST service design attempts to do. The book “REST in Practice”, written by Jim Webber, Savas Parastatidis, and Ian Robinson finds its main purpose in this pursuit of the aforementioned success factors and apply them to other software development.

With REST (based on the doctoral work of Roy Fielding) as its weapon of choice, it seeks to position this style as a viable (and even better?) alternative for Classic SOA. In its purest essence, REST is a state machine, tracking progression within a workflow by transitioning from one state to another. This state machine has one caveat though in that it is not known in advance how many different states there are. However, it displays numerous admirable qualities such as scalability, loose coupling and functional composition across service boundaries.

More detailed review: https://evolute.be/reviews/restinprac...
Profile Image for Xabi.
44 reviews3 followers
February 5, 2023
This book teaches the design of proper hypermedia systems. In other words: Distributed systems that leverage the full capabilities of HTTP & Hypermedia.

In an age where every application claims to be RESTful or based on REST, this book offers a clear explanation of what "RESTful" really means, and shows how to leverage hypermedia, URIs, and the HTTP protocol to build robust distributed applications while keeping complexity at bay.

The "RESTbucks" application being explored in the book is easy to understand and does a good job of explaining the advantages of designing distributed systems this way without using too many buzzwords.

Profile Image for Arturas.
13 reviews1 follower
September 14, 2020
This book really needs a second edition. Reading it in 2020 nearly half of the content feels dated, especially implementation examples.

I recommend reading chapters 1-6, 9. Other chapters I would skim or skip entirely.

With above in mind I do feel that book explain Rest and Web as a platform quite well so there is useful information and insight to gain.
Profile Image for Jason.
4 reviews
November 20, 2017
A bit long winded, however a calm walkthrough of enterprise backend systems. If you're coming from a .NET/J2EE space, this is a recommended read. I would also recommend this to aspiring systems architects.
24 reviews10 followers
July 19, 2019
Essential book for understanding REST model and API design using it. Easy to read and very useful.
2 reviews
February 11, 2020
Interesting read

Interesting and simple to follow. Good examples used. The single business case study helped the structure.
Worth a read for anyone interested in this area.
Profile Image for Abhilash Gopalakrishnan.
44 reviews1 follower
May 15, 2020
Great book, taking us well into principles discussed by Roy Fielding and considerations for REST ful services. The approach and managing stateless considerations still handling state is wonderful.
Profile Image for Yannick Grenzinger.
57 reviews6 followers
September 11, 2020
Surely one of the most complete book about REST.

But also very long ... I have just read the part I was looking for :D
Profile Image for Andrew.
46 reviews
October 23, 2021
Not perfect but a perfect antedote to the time it came out.
Profile Image for Glenn Burnside.
194 reviews9 followers
February 13, 2012
The core concepts, I thought, were sound. And I appreciated the fact that they gave some practical guidance on .NET and Java development for both implementing and consuming applications over HTTP. But, I felt like by the middle of the book, it started to fall apart. I have a hard time believing that the future of app development is long polling atom feeds. And frankly, I didn't find their usage of atom pub particularly compelling. Their examples required a lot of squinting to agree that basing the domain application protocol they were specifying on atom made sense, and it seemed to put a lot of burden on the client of the services to get things exactly right. The security and WS-* comparisons, though, were great.

I think this book helps clear some things up, but in no way was I satisfied after reading that I knew what I was going to start doing differently in my application development.
Profile Image for Vasili Puchko.
15 reviews3 followers
June 11, 2011
It's a good book about REST. But it's focused mostly on the XML. So about 50% of content doesn't apply to JSON services. And I believe that high-load services should use JSON or BSON instead of XML just because they are much smaller and faster.
Also it repeats the mistake made by Richardson in formulating RMM. The mistake in the way Richardson formulated RMM was to imply that systems with a higher number were inherently better. A RESTful system can be equally as crappy as an unRESTful system. The more important question is the question about the business constraints of your system and how best to meet them. REST provides a set of benefits and a set of constraints to get there. If you don't need them, you don't need REST. If they make sense, then a RESTful architecture style may be appropriate. And this book doesn't describe constraints of a REST well. But overall it worth reading it.
Profile Image for Thomas Zeeman.
10 reviews
January 27, 2016
More practical than the paper that originally coined the term REST and the section on level of maturity was nice to read. Although I might not agree with the hypermedia classification necessarily being the highest to go for. It feels rather complicated for many applications.

Not all was well though. The book being a few years old now it was already showing its age in several sections, i.e. where it was describing Atom/AtomPub as the next best thing while it pretty much dismissed micro formats as a fad. The Java and .Net code examples were helpful sometimes, but constant reference to libraries and there deficiencies at the time of writing and on occasion rather verbose examples due to lack of use of libraries wasn't easy to read through.

In all still ok, but if you're looking for a practical REST book there may be others with more up to date material. And probably also in a lot less pages.
Profile Image for Franck Chauvel.
119 reviews5 followers
June 9, 2016
This 2010 book—already—dives into REST services. Following the example of the Restbucks coffee shop, it gradually touches upon various issues, such as scaling, caching, security, etc. The authors illustrate each concerns with both Java and .NET code snippets and give a glimpse about possible implementations. They finally compare "traditional" WebServices (WS-*) with REST technology highlighting the pros and cons of both sides.

I really discovered the idea of hypermedia services, REST is actually more that URI templates. I liked also the parts about caching and the use of the Atom protocol, though I felt it get a bit lengthy. I would advise to read chapters selectively: the five first ones form a good overview of REST, whereas the rest is less fragmented: one chapter on Scaling, two on Atom publishing and other side concerns such as Security or Semantic technologies.
Profile Image for Andrew.
148 reviews7 followers
October 20, 2016
I read this book in fits and starts, in part because I found it to dry to engage with for long spells. Since I have found most other explanations of RESTful development difficult to grasp, I have to commend this book for getting me further. Also, there is enough breadth of coverage of architectural issues that the book is a helpful reference point.

I got an enourmous amount out of chapter 7 on ATOM. There is probably two reasons for this: I derived a similar solution in ATOM some time ago for a slightly different problem, so I could immediately see how the details improved on what I achieved; I have worked a little with a client who has a similar problem
600 reviews11 followers
October 6, 2015
Everyone talks about REST, but only a few can explain it in a concise und understandable way as it’s done in this book. The different levels of hypermedia solutions and how their different behaviour will influence the real-world usage was an eye opener. There are many good ideas in the book to experiment with, but the ATOM feed to publish events is the one I find the most useful. The book is a must-read if you want to build software using REST as an architecture model.
50 reviews1 follower
June 7, 2012
I took a very long break reading this because I was sick of web services of any kind. But I have finally finished reading it and am really impressed. If you have anything you want to share with anyone on the internet, this book has examples of how to do it and good explanations of the pros and cons. Very thorough. Maybe a bit dry with the .Net & Java code samples.
Profile Image for Brett Dargan.
8 reviews5 followers
November 29, 2010
great stuff, the introductory chapters, resonate with devs getting a grasp on REST.
The restbucks example is a great use case for teaching various RESTful aspects of a believable system non-trivial.
28 reviews
February 2, 2014
Excellent introduction to REST, including not only the what and the how, but a really strong case for the why. I highly recommend this if you do web services development, even if REST is not currently on your radar.
60 reviews
January 23, 2017
Good reference on REST for a beginner like myself. Good pacing; gets right to the point with minimal fluff to detract from what is being taught.

The book does not much address the why of REST but that helps the book be more focused and concise.
Displaying 1 - 30 of 43 reviews

Can't find what you're looking for?

Get help and learn more about the design.