2010-04-11 149 views
3

我有一个silverlight应用程序需要与rails应用程序交谈来添加记录。假设一切顺利,我已经能够获得silverlight应用程序来成功完成POST。然而现在,我需要能够使它更加健壮,并且让rails应用程序以它可以读取的格式(xml也许?)向Silverlight应用程序返回错误/成功消息。我可以根据需要修改rails应用程序和silverlight应用程序。如何使用rails创建Web服务?

什么是最好的方式来完成这与轨道?

回答

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    

您可以使用HTTP头设置状态(不行动返回任何东西):

format.xml { head :ok } 

而且您可以提供更复杂的消息,在这种情况下返回活动记录错误和状态信息鼠尾草:

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

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

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