У меня есть контроллер и я пытаюсь вызвать внутренний API. Вот мой контроллер
class UsersController < ApplicationController
def index
begin
response = RestClient.get "http://localhost:3000/api/users"
json_response = JSON.parse response
@users = json_response.map { |i|
user = User.new(i['id'])
user.first_name = i['first_name']
user.last_name = i['last_name']
user.email = i['email']
user.user_name = i['user_name']
user
}
rescue Exception => exp
render :html => "Something went wrong ! Try again later."
end
end
end
А это API
class Api::UsersController < ApplicationController
def index
invoker = ProviderInvoker.new(UserProvider.new)
data = invoker.getData
byebug
render json: data, adapter: :json
end
end
Забавно, что когда я впервые вызываю API, он выдает ошибку "Net :: ReadTimeout", но сразу после ошибки выпадает мой бэгуг в API (это происходит в том же времени выполнения, а не в другом вызове try). Я вижу страницу ошибки, затем обновляем sh страницу (что означает еще один вызов API), и теперь все работает нормально. Я вижу данные, поступающие из API. Это не работает в первый раз, но работает во второй раз.
Если я go на "http://localhost: 3000 / api / users " через URL браузера и вижу json, API работает даже с первой попытки. Это как фреймворк, заставляющий API работать после первого вызова. Что я здесь испытываю?