包含来自其他服务器的数据作为Rails响应的一部分

时间:2015-11-05 06:35:41

标签: ruby-on-rails

我有一个Rails应用程序。我想创建一个路径,除了在控制器中执行一些工作并渲染视图外,还从另一个服务器加载一些数据以包含在响应中。有点像代理,但有一些逻辑依赖于对rails的传入请求和从其他服务器加载的数据。

据推测,我会在控制器操作中发出某种HTTP请求,等待回复,然后再使用结果。

我有兴趣在服务器上完全这样做 - 我不想在客户端上使用AJAX / CORS /等。

我很好奇是否有一种标准的,有点官方的方式来实现这一目标。我见过一些使用net/http的例子 - 对于常见情况,这是一个“正确”的解决方案吗?

我并不特别担心延迟,故障模式,异步,流媒体或其他高级实现细节。一旦我掌握了基础知识,那么我将很乐意在其他方面表现出任何缺点。

1 个答案:

答案 0 :(得分:2)

由于您根本不想使用jquery或cor实现它,我想您可能会选择open-uri

open("http://www.google.com").read以字符串形式返回整个站点,然后您可以进行解析。

如果网站返回json,那么解析会更容易:

require 'open-uri'
require 'json'

def show
    json = JSON.parse(open("https://graph.facebook.com/me/friends?access_token=XXX").read)
    @name = json[:name]
    @email = json[:email]
end