我有一个工作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以使其更加模块化?
答案 0 :(得分:1)
您可以将NET::HTTP
替换为HTTParty
以获得后者的好处,或者您可以更加努力,让您的Twitter
模型包含HTTParty
,以便它响应类似ActiveRecord的接口,同时它在后台抽象发出所有这些API请求。
这个决定真的取决于你的需求。您是否只需要向Twitter发出特定请求并显示结果,或者您希望与Twitter进行更多交互,并将其视为可以创建,检索,删除等的模型。
无论您的选择如何,我相信official readme包含您可能需要的所有信息(它甚至可以为StackExchange提供一个很好的示例!)。