質問

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コールバックでトリガーされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top