我正在与需要使用JSON正文的DELETE请求的API进行通信。这适用于控制台:
curl -XDELETE http://api.com/endpoint_path/rest_resource
-d '{"items":[{"type":"type1","item_id":"item1"}]}'
似乎大多数用于发出HTTP请求的gem都不支持带有body的DELETE请求(我试过RestClient和Curb)。有没有办法使用一些Ruby gem(最好是Curb)或Net :: HTTP?
答案 0 :(得分:6)
以下是使用HTTParty的一种方式:
HTTParty.delete("http://api.com/endpoint_path/rest_resource", {
:body => '{"items":[{"type":"type1","item_id":"item1"}]}'
})
答案 1 :(得分:0)
可以用她。这是api的ORM。 https://github.com/remiprev/her
使用示例:
RestResource.destroy_existing(id, body_params)
答案 2 :(得分:0)
我在这个问题上也花了一些时间,@ Casper的答案为我们提供了启示。
在我看来,关键是将主体值作为JSON字符串传递,这在我发现的大多数文档中都没有写。
这是使用httpclient
的另一个示例require 'json'
body = { 'items': [{ 'type': 'type1', 'item_id': 'item1' }]}
HTTPClient.new.delete('http://api.com/endpoint_path/rest_resource', body.to_json)