[英]Is it ok to make http calls from a Rails Model?
我正在系統與外部Web服務之間進行集成。 在我的系統中,我有一個Customer
模型。 客戶可以借記,但是此信息(客戶的財務狀況)在我的數據庫中不可用。 我正在與之集成的Web服務中。
我在此模型中創建了一個方法,並將其命名為is_in_debit?
。 在方法實現中,我正在對Web服務進行HTTP調用。
class Customer < ActiveRecord::Base
...
def is_in_debit?
response = HTTP.get_response('https://...').body
response = JSON.parse(response)
response['status'] == 'active' ? false : true
end
end
但是我懷疑該模型是否適合進行HTTP調用。 從架構的角度來看,對嗎? 還是應該改變我的方法?
不,您違反了SRP原則 ,在活動記錄模型中,您應該僅添加訪問模型數據的方法。 我建議創建一個新對象:
class CustomerService
def is_in_debit?(user)
// your http request here
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.