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