Rails 按原样转发来自外部的回复 API
Rails forward a response as is from an external API
我正在我的控制器函数中调用外部 API。
# {root}/some/route
def my_action
# call to external API
resp = my_call_to_external_api
end
这个外部 API 调用 returns 一个响应 200 和一个正文。
我想像有人到达路线时我的控制器响应一样转发此响应
{root}/some/route.
我对当前实施的回应是状态 204,没有正文。我检查了日志,发现这是因为在成功调用外部 API 后,我的控制器操作没有任何内容可渲染,因此正在渲染 204 :no_content。
我如何确保我的控制器操作只是转发从外部 API.
接收到的响应
我是新手,所以任何提示都将不胜感激。谢谢!
最简单的方法是
require 'uri'
require 'net/http'
url = URI(YOUR_URL)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
这可能会解决您的问题。
我解决这个问题的方法是,使用从响应中解析的正文呈现我从响应中收到的状态。
render :ok, json: resp.read_body
我正在我的控制器函数中调用外部 API。
# {root}/some/route
def my_action
# call to external API
resp = my_call_to_external_api
end
这个外部 API 调用 returns 一个响应 200 和一个正文。
我想像有人到达路线时我的控制器响应一样转发此响应 {root}/some/route.
我对当前实施的回应是状态 204,没有正文。我检查了日志,发现这是因为在成功调用外部 API 后,我的控制器操作没有任何内容可渲染,因此正在渲染 204 :no_content。 我如何确保我的控制器操作只是转发从外部 API.
接收到的响应我是新手,所以任何提示都将不胜感激。谢谢!
最简单的方法是
require 'uri'
require 'net/http'
url = URI(YOUR_URL)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body
这可能会解决您的问题。
我解决这个问题的方法是,使用从响应中解析的正文呈现我从响应中收到的状态。
render :ok, json: resp.read_body