如何使用rails创建Web服务?

Not*_*Dan 3 web-services ruby-on-rails

我有一个silverlight应用程序,需要与rails应用程序交谈才能添加记录.假设一切顺利,我已经能够成功地使用Silverlight应用程序进行POST.但是,现在,我需要能够使其更强大,并让rails应用程序以可读取的格式(xml可能?)将错误/成功消息返回到silverlight应用程序.我可以根据需要修改rails app和silverlight应用程序.

使用rails实现此目的的最佳方法是什么?

Tob*_*ede 6

Rails处理大部分开箱即用的功能.

你需要看看respond_to

这将以@list形式返回XML中的记录:

@list = Model.find(:all)
respond_to do |format|           
  format.html { render :action => "index" }
  format.xml  { render :xml => @list }
end             
Run Code Online (Sandbox Code Playgroud)

您可以使用http标头设置状态(对于不返回任何内容的操作):

format.xml  { head :ok }
Run Code Online (Sandbox Code Playgroud)

并且您可以提供更复杂的消息,在这种情况下返回Active Record错误和状态消息:

format.xml  { render :xml => @model.errors, :status => :unprocessable_entity }
Run Code Online (Sandbox Code Playgroud)