如何使用rails创建Web服务?

时间:2010-04-11 23:30:54

标签: ruby-on-rails web-services

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

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

2 个答案:

答案 0 :(得分:6)

Rails处理大部分开箱即用。

您需要查看 respond_to

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

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

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

format.xml  { head :ok }

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

format.xml  { render :xml => @model.errors, :status => :unprocessable_entity }

答案 1 :(得分:1)

这与任何典型的Rails应用程序几乎相同。

唯一的区别是您将使用xml(或json,或Silverlight可以解析的任何其他内容)响应任何相关操作。 (而不是渲染HTML页面。)