如何使用rails创建Web服务?
问题描述:
我有一个silverlight应用程序需要与rails应用程序交谈来添加记录。假设一切顺利,我已经能够获得silverlight应用程序来成功完成POST。然而现在,我需要能够使它更加健壮,并且让rails应用程序以它可以读取的格式(xml也许?)向Silverlight应用程序返回错误/成功消息。我可以根据需要修改rails应用程序和silverlight应用程序。如何使用rails创建Web服务?
什么是最好的方式来完成这与轨道?
答
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 }
答
这与任何典型的Rails应用程序几乎相同。
唯一的区别是,您将使用xml(或json,或Silverlight可以解析的任何其他东西)来响应任何相关操作。 (而不是渲染一页HTML)。