Implementation of rest in ROR

Hi all,

I am new to ROR world. I know the REST conceptually but find the difficulties in implementation can anybody guide me that which is the best book which i have to read. also some good links of implementation of rest in ROR.

If anybody made a small application to restful in rails please forward me that application.

i found some demo but i didn't understand for what purpose they use format.xml

def update     @forum.update_attributes!(params[:forum])     respond_to do |format|       format.html { redirect_to @forum }       format.xml { head 200 }     end   end

please help me i want to learn implementation of rest in ROR

Here is the book to start with:

This has a section on REST and Rails that will explain things to you.

I would also highly recommend the Peepcode screencast on RESTful Rails:

This line: format.xml { head 200 } or can also be written format.xml { head :ok } is used to inform a non-browser request (say from curl) that the PUT to the existing forum resource was successful. It does not need to return the XML of the object because the client already know what that is, because it just PUT it to the service. So a HEAD response saying OK (200) is all that is required.


format.xml is useless unless you want to return an XML file containing whatever is being returned in the action. You dont need that line, or the responds_to if you're only going to have one thing it responds_to.

Well yes, format.xml is useless unless you want to return XML for the action. But, as it turns out, returning XML for actions is VERY useful.

I don't know why format.xml is included and if someone could inform us why, that would be great :slight_smile:

You ask why, I ask why not? It is becoming more and more common for web applications to talk to each other. This is generally accomplished using XML to exchange data between applications. Having the scaffold generators include support for XML responses to RESTful actions is extremely useful. It allows the developer to create their REST API right along side their normal site development. Having this "baked-in" support for REST services goes a long way toward a standard where developers can begin to assume other applications support services in a conventional way.

The basic idea here is that it's time to stop assuming the requester is a web page (browser). There are a number of other ways to issues requests to a web application in this modern Web 2.0 era. HTML is certainly not the preferred response format for, say, terminal request via curl. In something like that you don't want to sift through a bunch of HTML layout code to get to your data. XML is a great way to supply the data without the presentation. JSON is another great way to do that.


def show   @forum = Forum.find(params[:id])

  respond_to do |fomat|     format.html # use the normal erb template to generate the HTML response     format.iphone # use the erb template with optimized presentation for the iPhone     format.xml { render :xml => @forum.to_xml }     format.json { render :json => @forum.to_json }   end end

curl http://localhost:3000/forums/1.xml => XML response curl http://localhost:3000/forums/1.json => JSON response