在哪里放置位于Rails应用程序的位置
-
13-09-2020 - |
题
我正在计划使用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
回调中触发
不隶属于 StackOverflow