Question

Je compte sur l'aide de Bits.ly Pro et le Bit.ly API pour faire mon propre url courtes dans Rails 3 du projet.

J'ai un Utilisateur et une Note de modèle.Et une structure d'url comme ceci:'/nom d'utilisateur/1-note-titre".

Maintenant, je voudrais donner à chaque note une url courte.Mais je ne sais pas d'où je devrais faire l'appel d'API.Droit maintenant j'ai ce code dans la Note contrôleur mais je ne sais pas si c'est le bon endroit ou comment récupérer l'url de la note spécifique...

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

L'objet JSON structure juste pour la référence:

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

Help wanted, merci d'avance!

Était-ce utile?

La solution

Je semble que l'url courte devriez obtenir créés dès qu'une nouvelle note est créé pour un utilisateur donné.Dans ce contexte, il pourrait arriver que le résultat d'une create l'action dans le NotesController (généralement).Les meilleures pratiques suggèrent que la logique de la responsabilité de vivre l' Note modèle donc, je vous suggère de faire l' bit.ly raccourcissement mis en œuvre dans un enregistrer de rappel, que ce soit avant ou après, selon comment il est critique (dans le contexte de votre application) pour une URL raccourcie d'exister.

Le défi est de faire face à l'erreur de cas, ce qui est quand la bit.ly service est pas en mesure de répondre à vos raccourcissement demande à tous ou prend trop de temps à le faire.C'est lors de l'introduction dans la fonction de rappel ne peut faire sens qu'elle pourrait potentiellement la cravate de votre application lorsque vous essayez de répondre à la demande.

Si vous n'avez pas besoin live De raccourcissement d'URL, alors vous pourriez envisager la création d'un raccourcissement de demandes de travaux en file d'attente dans un processus d'arrière-plan être fait de manière asynchrone (réessayer si nécessaire) et d'être déclenchée dans celle-ci after_save rappel dans votre Note modèle

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top