2014-05-21 30 views
1

我有一個工作的API調用Twitter。耶我!但問題是,我寧願將它重構成HTTParty,然後我可以稍後再擴展它。關於爲什麼我不使用類似twitter gem的東西有各種各樣的原因。它們主要是由於應用程序需要克服的一些限制。如何重構API調用以使用HTTParty?

在這裏,我的代碼工作件調用到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

你可以只用HTTParty取代NET::HTTP,以獲得後者的好處,或者讓它,而它抽象在後臺響應一個ActiveRecord一樣的界面,你可以去加倍努力,使您的Twitter模型包括HTTParty正在發佈所有這些API請求。

這個決定真的取決於你的需求。您是否需要向Twitter發出特定請求並顯示結果,或者您希望與Twitter進行更多互動,並將其視爲可以創建,檢索,刪除等的模型。

無論您選擇什麼,我相信official readme具有您可能需要的所有信息(它甚至有StackExchange的一個很好的例子!)。

+0

是的。我希望我不必爲了「過度工程」而多走一步,但我處於這個位置。我認爲ATM可以像閱讀一樣簡單。我不會考慮寫作和DM。我還沒有在oauth的回購中找到任何東西...... – BenMorganIO

相關問題