2012-12-22 26 views
1

我有一个API中心的应用程序(/ API/V1 /用户),它只是用JSON格式返回REST风格的所有用户。Rails的HTTParty获取超时::错误

我的问题是,如果我叫控制器上的这条路线,它返回“超时::错误” 问题是什么?

class BaseController < ApplicationController 
    def index 
    return HTTParty.get('http://localhost:3000/api/v1/users').body 
    end 
end 

更新

  • users_controller.rb(/ API/V1 /用户)
  • application_controller.rb

https://gist.github.com/4359591

日志

http://pastie.org/5565618

+0

你可以显示控制器负责返回JSON的方法吗? –

+0

@JiříPospíšil用更多的信息更新了我的问题 –

+0

你能分享日志吗? –

回答

3

如果我理解正确的,你有一个API终点,在/api/v1/users,你的BaseController#index正在调用的方法?

如果这是正确的,在同一个Rails进程中,并且您正在开发模式下进行测试(正如我可以从您的url中看到的那样),那么您只有一个进程正在运行,它只能同时处理一个请求。所以如果你开始请求BaseController#index,它会向你自己的测试服务器发起另一个请求,这个测试服务器很忙,它只会等到它超时。

如果你想测试你的API,我想看看例如像客户端工具Postman

HTH。

+0

是的,它是正确的。所以用Postman扩展测试了我的API,并且使用了rails的控制台,一切正常。我如何在同一应用程序中使用多进程? –

+0

虽然这可能是可能的,但如果您安装apache/nginx和用户乘客,这是一个很大的开销。我不明白你为什么想这样做?这是一个陷入困境的场景。因为每个请求都会占用服务器的两个请求。为什么不直接调用代码? – nathanvda

+0

因为我正在构建一个Web /移动混合应用程序,其中两个共享相同的API –

相关问题