我有一个Rails应用程序。我想创建一个路径,除了在控制器中执行一些工作并渲染视图外,还从另一个服务器加载一些数据以包含在响应中。有点像代理,但有一些逻辑依赖于对rails的传入请求和从其他服务器加载的数据。
据推测,我会在控制器操作中发出某种HTTP请求,等待回复,然后再使用结果。
我有兴趣在服务器上完全这样做 - 我不想在客户端上使用AJAX / CORS /等。
我很好奇是否有一种标准的,有点官方的方式来实现这一目标。我见过一些使用net/http
的例子 - 对于常见情况,这是一个“正确”的解决方案吗?
我并不特别担心延迟,故障模式,异步,流媒体或其他高级实现细节。一旦我掌握了基础知识,那么我将很乐意在其他方面表现出任何缺点。
答案 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