我有一个 Rails 应用程序,我在其中使用了许多 API,例如 Google Adwords、Facebook Graph 等。
我应该在哪里调用这些 API?在模型中还是在控制器中?
我有一个 Rails 应用程序,我在其中使用了许多 API,例如 Google Adwords、Facebook Graph 等。
我应该在哪里调用这些 API?在模型中还是在控制器中?
我会为这些类型的东西使用 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
我的答案是控制器..
我们从Controller中的 API 获取结果,我们可以将其存储在model中。
首先,每个动作都将在控制器内完成。
我们可以在production.rb中声明 API 路径。并在应用程序内的任何地方使用它。如果需要更改 API 路径,只需在 production.rb 中更改即可。