簡體   English   中英

從Rails模型進行http調用可以嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM