Review: RESTful Web Services

I’m way behind in writing reviews of the things I’ve read over the past months, so let’s start with a quick review of this one. I know the topic is kind of strange when you consider what kind of books I’ve read otherwise, but being work-related and written of a fairly interesting topic I thought I’d review this also.

REST (or the abhorrent full term Representational State Transfer), in case someone doesn’t know, is a style of software architecture. As a sort of an architectural paradigm, it’s a difficult thing to really describe so I won’t even try – read the Wikipedia article and the relevant links from there for a quick tutorial.

Considering REST is, at its core, a very simple thing, one would think that coming up with a 400+ page book about it is difficult. And it appears it has been, at least if 100% of it should be relevant – while RESTful Web Services serves as an excellent introduction to the topic, it’s at times painfully broadly written (as opposed to compact and neat). So in an effort to keep this review simple also, I’ll simply list the good and bad things about the book:

The good:

  • Very good introduction to REST, what it’s about, what it’s not and the general basics.
  • Provides a good overview of other type of web service architectures also; good coverage of the differences and nice argumentation as to why the REST approach is better in many cases.
  • I like the fact that transactions, asynchronous operations, batch operations etc are discussed (though briefly); it’s good to show that REST can be used for more advanced things than simple one-off request/reply-type of things.

The bad:

  • Most examples are code examples and written in Ruby, which I’m not familiar with. Considering REST requests are basically human-readable, it would’ve been much nicer to simply print the requests and replies in the book and, if necessary, provide pseudocode for any more advanced stuff. Now the Ruby-code tends to detract from the structure itself. YMMV, of course. There is some code available in other languages also on the book’s site – which is an even better reason not to pollute the pages themselves with code in a specific language.
  • The service implementation examples are mostly of a rather boring services and the main example is a pretty long-winding chapter. I practically skimmed through that.

All in all, RESTful Web Services is a good book that could’ve been even better had it been cut to 300 pages or so. For the uninitiated, it provides a good overview of what REST is, what can be done with it, how it should be used and why it’s an important concept. So it’s recommended reading for anyone who either is implementing services in the Internet or is interested in knowing how these things work – or at least should work.

- – -

Now, onto a semi-related matter – why is it that some people in the ICT industry (especially the C part) seem to crave for complexity? If an API can be described in a single page, it’s immediately dismissed as it just looks too simple. If something isn’t standardized, it’s frowned upon. If things don’t come with a 2,000-page manual and/or specification (that nobody would read anyway), they obviously cannot be good, thoroughly thought-out solutions.

Can’t we just try to live and work by these words of Einstein:

Make everything as simple as possible, but not simpler.

In Web Services, this is where REST comes in. Adding SOAP and a bunch of WS-* standards until your mouth foams is just stupid. The Internet and other networks – and, quite frankly, the world – would be a much better place if unnecessary feature creep wasn’t so omnipresent.

This entry was posted in Books, ICT-stuff, Reviews. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>