9.2. ActiveResource

In the beginning there was ActiveWebService, part of the Rails core that allowed Rails to act as a SOAP or XML-RPC client and server. And it was ... okay. Then David Heinemeier Hansson (the creator of Ruby on Rails) announced in his keynote address at the 2006 RailsConf that Rails was going to be supporting REST as a web services architecture in a big way. ActiveWebService would be removed from the Rails 2.0 core, although it would still be available as a plugin.

In the Rails 2.0 world, Rails applications act as web service servers through the support of REST in the design of the controllers, and as web service clients through a new Rails library called ActiveResource. The ActiveResource library is specifically designed to work with external sites that follow the REST standard.

Why the change? It seems as though Hansson and the Rails team saw the opportunity to improve the design of Rails applications in multiple directions at once. By encouraging the limitation of controller classes to the CRUD (Create, Read, Update, Delete) set of actions, it moves Rails even further in the "convention, not configuration" direction. Simultaneously, the more that Rails controllers have a consistent, predictable set of actions, the easier it is to write and maintain client applications that rely on those servers to acquire their data. At that point, it becomes possible to have a smart web services client that can infer the structure of their objects in much the same way that ...

Get Professional Ruby on Rails™ now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.