我正在计划使用bit.ly pro和bit.ly api在rails 3项目中制作自己的短URL。

我有一个用户和一个注释模型。和这样的URL结构:'/用户名/ 1-note-title'。

现在我想给每个音符一个短的网址。但我不知道我应该从哪里做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"
}
.

帮助想要,提前谢谢!

有帮助吗?

解决方案

我似乎应该在为给定用户创建新的音符时创建短USL。在该上下文中,它将作为create(通常)中的生成aceTagcode操作的结果发生。最佳实践表明,逻辑责任应该实现生成的世代曲目代码模型,因此我建议您在保存回调中实现的缩短,无论是之前还是之后,都具体取决于它是如何(在您的特定应用程序的上下文中)的关键缩短URL。

挑战是处理NotesController服务无法响应缩短请求的错误情况或在此操作中花费太久时。这是在回调中的时候可能没有意义,因为它可能会在尝试履行请求时占用您的应用程序。

如果您不需要 live URL缩短,那么您可以考虑在背景进程要异步(必要时重新重试),并在Note Model中的上述bit.ly回调中触发

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top