2

我有一个 Rails 应用程序,我在其中使用了许多 API,例如 Google Adwords、Facebook Graph 等。

我应该在哪里调用这些 API?在模型中还是在控制器中?

4

2 回答 2

1

我会为这些类型的东西使用 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
于 2012-12-25T11:15:54.627 回答
0

我的答案是控制器..

我们从Controller中的 API 获取结果,我们可以将其存储在model中。

首先,每个动作都将在控制器内完成。

我们可以在production.rb中声明 API 路径。并在应用程序内的任何地方使用它。如果需要更改 API 路径,只需在 production.rb 中更改即可。

于 2012-12-25T10:14:24.403 回答