如何重构API调用以使用HTTParty?

时间:2014-05-21 05:32:39

标签: ruby-on-rails ruby api twitter

我有一个工作API调用Twitter。我也好!但问题是我更愿意将它重构为HTTParty然后我可以稍后扩展它。关于为什么我没有使用twitter gem之类的东西,有各种各样的原因。它们主要是由于应用程序需要克服的一些限制。

在这里,我有一段调用Twitter的代码:

class Twitter
  def validate
    consumer_key = OAuth::Consumer.new(
      ENV['TWITTER_CONSUMER_KEY'],
      ENV['TWITTER_CONSUMER_SECRET']
    )
    access_token = OAuth::Token.new(
      ENV['TWITTER_ACCESS_TOKEN'],
      ENV['TWITTER_ACCESS_SECRET']
    )

    baseurl = "https://api.twitter.com"

    address = URI "#{baseurl}/1.1/account/verify_credentials.json"

    http = Net::HTTP.new address.host, address.port
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER

    request = Net::HTTP::Get.new address.request_uri
    request.oauth! http, consumer_key, access_token

    http.start
    response = http.request request
    puts "The response status was #{response.code}"
  end
end

它仅取决于oath gem

关键问题:如何将其包装成HTTParty以使其更加模块化?

1 个答案:

答案 0 :(得分:1)

您可以将NET::HTTP替换为HTTParty以获得后者的好处,或者您可以更加努力,让您的Twitter模型包含HTTParty,以便它响应类似ActiveRecord的接口,同时它在后台抽象发出所有这些API请求。

这个决定真的取决于你的需求。您是否只需要向Twitter发出特定请求并显示结果,或者您希望与Twitter进行更多交互,并将其视为可以创建,检索,删除等的模型。

无论您的选择如何,我相信official readme包含您可能需要的所有信息(它甚至可以为StackExchange提供一个很好的示例!)。