我有一个rails应用程序,我使用许多API,如Google Adwords,Facebook Graph等。
我应该在哪里调用这些API?在模型中还是在控制器中?
答案 0 :(得分:2)
我会将lib目录用于这些类型的事情。这是一种干净且可重复使用的方式。
LIB / facebook_api.rb
class FacebookApi
def initialize(opts={})
@token = "..."
@type = opts[:type] || "me"
end
def call
@response = Httparty.get("#{@type} #{@token}") #example not real.
@response
end
end
您可以像
一样使用它@facebook_api = FacebookApi.new(type: "friends")
@facebook_api.call
答案 1 :(得分:0)
我的回答是控制器 ..
我们从控制器中获取API的结果,我们可以将其存储在模型中。
首先,每个动作都将在控制器内完成。
我们可以在 production.rb 中声明API路径。并在应用程序内的任何地方使用它。如果需要更改API路径,则只需在production.rb中更改它。