Frage

Ich plane zu verwenden Bit.ly Pro und die Bit.ly API, um meine eigenen kurzen URLs in einem Rails 3-Projekt zu erstellen.

Ich habe ein Benutzer- und ein Notizmodell.Und eine URL-Struktur wie diese:'/ Benutzername / 1-Notiz-Titel'.

Jetzt möchte ich jeder Notiz eine kurze URL geben.Aber ich weiß nicht, von wo aus ich den API-Aufruf machen soll.Im Moment habe ich diesen Code im Notiz-Controller, aber ich weiß nicht, ob dies der richtige Ort ist oder wie ich die URL der bestimmten Notiz erhalte...

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"]

Die JSON-Objektstruktur dient nur als Referenz:

{
  "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"
}

Hilfe gesucht, danke im Voraus!

War es hilfreich?

Lösung

Ich scheine, dass die kurze URL erstellt werden sollte, wenn eine neue Notiz für einen bestimmten Benutzer erstellt wird.In diesem Zusammenhang würde es als Ergebnis einer create aktion in der NotesController (typischerweise).Best Practice würde vorschlagen, dass die logische Verantwortung die leben sollte Note modell also würde ich vorschlagen, dass Sie das tun bit.ly Verkürzung, die in einem Speicherrückruf implementiert wird, entweder vorher oder nachher, je nachdem, wie wichtig es (im Kontext Ihrer speziellen App) ist, dass eine verkürzte URL vorhanden ist.

Die Herausforderung besteht darin, sich mit dem Fehlerfall zu befassen, bei dem die bit.ly der Service kann auf Ihre Verkürzungsanfrage überhaupt nicht reagieren oder dauert zu lange.In diesem Fall ist es möglicherweise nicht sinnvoll, es in den Rückruf aufzunehmen, da dies möglicherweise Ihre Anwendung binden könnte, wenn Sie versuchen, die Anforderung zu erfüllen.

Wenn Sie nicht brauchen Leben URL-Verkürzung dann könnten Sie in Betracht ziehen, Verkürzungsanforderungen als Jobs in der Warteschlange in einem zu erstellen Hintergrundprozess asynchron ausgeführt werden (bei Bedarf erneut versuchen) und in den oben genannten ausgelöst werden after_save rückruf in Ihrem Note Modell

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top