2012-02-02 48 views
0

我正在創建一個Rails應用程序,而不是使用後端數據庫,它將與外部REST服務進行通信。Rails模型與REST服務交談

這工作是這樣的:

Model.find(1) # GET /model/1 
Model.delete(1) # DELETE /model/1 
... 

業務就要求助於邏輯方法調用到REST請求屬於在我的模型。但是,有幾種不同的服務器可以被查詢。我在哪裏放置連接邏輯以便:

  1. 查詢在服務器之間平均分佈?
  2. 如果服務器變得不可用,請求將使用不同的服務器重試?

我假設這個邏輯不屬於模型,但我不知道在哪裏。

任何意見非常讚賞。

回答

2

您考慮過使用Active Resource嗎?如果我理解正確的話,它幾乎可以用於這個用例。

+0

是否有可能改變活動資源預期的JSON?例如,Active Resource假設響應中會有'id',但該字段被稱爲別的東西。 – gjb 2012-02-02 16:32:28

+1

這可能有所幫助:http://stackoverflow.com/questions/1069899/consuming-non-rest-apis-in-rails-with-activeresource – 2012-02-02 16:47:24

+2

@gjb你需要重寫'to_json'和'from_json'方法ActiveResource,調用super並手動重新分配id。 http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html#method-i-from_json – Chirantan 2012-02-02 16:58:18