2010-04-11 129 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)。