我有两个Rails应用程序。假设App1
和App2
。 App1
的模型是我业务的核心,App2
希望使用它。
我正在考虑的一种方法是创建模仿ActiveRecord功能的PORO
,但是它不是与数据库交互,而是与App1
或HTTP
进行交互。
例如:
https
我不确定这种方法是否太聪明或正确,因为我们为对象提供了class User < NetworkRecord
def self.find(id)
new.find(id)
end
def find(id)
endpoint = 'https:app1.com/user'
get(endpoint, { id: id })
end
end
class NetworkRecord
def get(endpoint, params)
Httparty.get(endpoint, params)
end
end
的某些功能,而没有继承自该对象。
如果您知道实现同一目标的更好方法,请告诉我。
答案 0 :(得分:1)
感觉就像您在思考与ActiveResource一样,它为跨REST接口的对象提供了类似于ActiveRecord的接口。
如果您打算将两个代码库完全分开,则可能需要采用某种形式的基于API的关系。您必须要小心的一件事是,使用这种方法会产生多少网络流量。如果这两个应用程序将成为您构建的API的唯一用户,那么您就有机会根据您的用例构建更多自定义的终结点,从而可以尽可能高效地交付所需数据。