Google Adwords、Facebook Graph などの多くの API を使用する Rails アプリがあります。
これらの API はどこで呼び出す必要がありますか? モデルまたはコントローラーで?
Google Adwords、Facebook Graph などの多くの API を使用する Rails アプリがあります。
これらの API はどこで呼び出す必要がありますか? モデルまたはコントローラーで?
これらのタイプのものには 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
私の答えはコントローラーです..
Controllerの API から結果を取得し、それをmodelに保存できます。
まず、すべてのアクションが controller 内で実行されます。
また、 production.rbで API パスを宣言することもできます。アプリケーション内のどこでも使用できます。API パスを変更する必要がある場合は、production.rb で変更してください。