带有效负载的Ruby RestClient GET请求

时间:2017-09-23 15:51:50

标签: ruby rest-client

请帮我解决以下问题: 我有许多申请和相关记录。

app with id 1 has: record1, record2 and record3.
app with id 2 has: record1 ... record1000 

使用curl过滤掉app 1 Im的记录。我可以使用以下命令获取记录:

curl -i -H "accept: application/json" -H "Content-type: application/json"  -X GET -d '{ "filters": { "app_id":"1" }}' http://[rails_host]/v1/records?token=[api_token]

我怎样才能使用ruby RestClient(gem' rest-client'' 1.7.2')

要获取所有记录,请执行以下操作:

RestClient.get("http://[rails_host]/v1/records?token=[api_token]", { :content_type => 'application/json', :accept => 'application/json'})

问题是不会返回应用ID,因此我无法解析响应并获取app id = 1的记录

任何想法如何将有效负载添加到Restclient.get以过滤掉记录?

1 个答案:

答案 0 :(得分:5)

您可以在文档here中看到,接受有效负载参数的唯一高级助手是POST,PATCH和PUT。要使用有效负载发出GET请求,您需要使用RestClient::Request.execute

这看起来像是:

RestClient::Request.execute(
  method:  :get, 
  url:     "http://[rails_host]/v1/records?token=[api_token]",
  payload: '{ "filters": { "app_id":"1" } }',
  headers: { content_type: 'application/json', accept: 'application/json'}
)