bit.ly.ly.ly APIをRailsアプリに入れる場所
-
13-09-2020 - |
質問
Bit.LY PROとbit.ly APIを使用して、自分の短いURLをRails 3プロジェクトにします。
私はユーザーとメモモデルを持っています。そして、このようなURL構造: '/ username / 1-note-title'。
今、それぞれのメモに短いURLを与えたいと思います。しかし、私は私がAPI呼び出しをするべき場所からわかりません。現在、私はこのコードをメモコントローラに入手しましたが、それが正しい場所であるかどうか、または特定のメモのURLを取得する方法を知りません...
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"
}
.
ヘルプ募集、事前にありがとう!
解決
私は、特定のユーザーに対して新しいメモが作成されたときに短いURLが作成されるべきであるようです。そのコンテキストでは、create
(通常)のNotesController
アクションの結果として発生します。ベストプラクティスは、論理責任がNote
モデルを生きるべきであることを示唆しているので、私はあなたがそれがどれほど重要か(あなたの特定のアプリのコンテキストで)それがどれだけの重要かに応じて、保存コールバックで実行されるbit.ly
の短縮をすることをお勧めします。存在するURLを短くしました。
課題は、bit.ly
サービスが全く短縮要求に応答できない場合であるエラーケースを扱うか、または長時間撮影しています。それがコールバックに入れるときのものは、要求を満たすことを試みるときにあなたのアプリケーションを拘束する可能性があるので意味がないかもしれません。
live URLの短縮を必要としない場合は、背景プロセスは非同期的に実行され(必要に応じて再試行してください)、after_save
モデル
Note
コールバックでトリガーされます。