首页 > 解决方案 > Rails 按原样转发来自外部 API 的响应

问题描述

我正在我的控制器函数中调用外部 API。

# {root}/some/route
def my_action
  # call to external API
  resp = my_call_to_external_api
end

此外部 API 调用返回响应 200 和正文。

当有人点击路由 {root}/some/route 时,我想按原样转发此响应作为我的控制器响应。

我对当前实现的回应是没有正文的状态 204。我检查了日志,发现这是因为在我的控制器操作成功调用外部 API 后没有任何内容可以渲染,因此正在渲染 204:no_content。我如何确保我的控制器操作只是转发从外部 API 接收到的响应。

我是新手,所以任何提示将不胜感激。谢谢!

标签: ruby-on-railsresponserender

解决方案


我为解决这个问题所做的是,使用从响应中解析的正文呈现我从响应中收到的状态。

render :ok, json: resp.read_body

推荐阅读