复制 curl 命令以访问 Rails 中的 Smartsheet

Replicate curl command to access Smartsheet in Rails

我正在尝试通过 API 2.0 在 Ruby-on-Rails 应用程序中访问 Smartsheet。我可以让他按照 curl 命令工作

curl --request GET https://api.smartsheet.om/2.0/sheets -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx"

所有在 Ruby 代码中复制的尝试都失败了。任何人都可以帮助转换为 Ruby 吗?

谢谢!

您有几个选项可以实现。如果你想像你建议的那样接近 curl,你可以捕获用反引号包裹它的 curl 命令的响应

response = `curl --request GET https://api.smartsheet.om/2.0/sheets -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx"`

不过,我建议使用 CURB 之类的东西,它为 libcurl 提供 Ruby 绑定。它会添加一些语法糖,所以你的请求看起来像

response = Curl.get("https://api.smartsheet.om/2.0/sheets") do |http|
  http.headers['Authorization'] = 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxx'
end

另一种选择是完全放弃 curl 并使用 gem,如 HTTParty。它利用 Ruby 的 net/http 来发出请求。

大概是这样的:

response = HTTParty.get("https://api.smartsheet.om/2.0/sheets",
           headers: 'Authorization' => 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxx')