1

我有一个以 API 为中心的应用程序 (/api/v1/users),它只是以 JSON 格式简单地返回所有用户。

我的问题是,如果我在控制器上调用该路由,它会返回“Timeout::Error”,这是什么问题?

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

更新

  • users_controller.rb (/api/v1/users)
  • application_controller.rb

https://gist.github.com/4359591

日志

http://pastie.org/5565618

4

1 回答 1

3

如果我理解正确,您有一个 API 端点 at /api/v1/users,并且您BaseController#index正在调用该方法?

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

如果你想测试你的 API,我会看看像Postman这样的客户端工具。

HTH。

于 2012-12-22T16:43:24.997 回答