2010-07-08 69 views
0

我打算使用Bit.ly Pro和Bit.ly API在Rails 3項目中創建自己的短網址。哪裏可以在Rails應用中使用Bit.ly API調用

我有一個用戶和一個筆記模型。像這樣的網址結構:'/ username/1-note-title'。

現在我想給每個註釋一個簡短的網址。但是我不知道從哪裏開始API調用。現在我在注意控制這個代碼,但我不知道這是正確的地方或如何得到具體說明的網址...僅供參考

url = ??? 

parsed_json = JSON('http://api.bit.ly/v3/shorten?login=bitlyapidemo&apiKey=R_0da49e0a9118ff35f52f629d2d71bf07&longUrl=' + url + '&format=json') 

@short_url = parsed_json["data"]["url"] 

的JSON對象結構:

{ 
    "status_code": 200, 
    "data": { 
    "url": "http://bit.ly/cmeH01", 
    "hash": "cmeH01", 
    "global_hash": "1YKMfY", 
    "long_url": "http://betaworks.com/", 
    "new_hash": 0 
    }, 
"status_txt": "OK" 
} 

幫助想要,在此先感謝!

回答

3

我似乎應該爲給定用戶創建一個新音符時創建一個短url。在這種情況下,它會發生在NotesController(通常)中create動作的結果。最佳實踐表明,邏輯責任應該生存Note模型,所以我建議你做一個保存回調中實現的bit.ly縮短,無論是之前還是之後,取決於它的重要性(在特定應用的上下文中)縮短的URL存在。

面臨的挑戰是如何處理錯誤情況,即bit.ly服務無法響應您的縮短請求,或者這樣做時間過長。那時候把它放在回調中可能沒有意義,因爲它可能會在嘗試完成請求時綁定應用程序。

如果您不需要現場網址縮短,那麼你可以考慮在background process創建縮短請求作爲排隊的作業進行異步完成(根據需要重試),並在上述after_save回調在Note模型

被觸發
+0

謝謝,你知道after_save回調是否對創建和更新有效? – Alfred 2010-07-10 13:29:46

+0

@Alfred Nerstu是的。從文檔引用(http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html#M001373):「after_save()...在Base.save之後調用(不管它是創建還是更新保存)。「 – bjg 2010-07-10 15:10:43

+0

啊,太好了,謝謝! – Alfred 2010-07-13 11:11:11

相關問題