2012-12-22 25 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 –

相關問題