JSON API删除'拥有并属于许多'关系

时间:2017-03-29 05:40:52

标签: ruby-on-rails rest json-api jsonapi-resources

我正在使用jsonapi-resources gem为类似于购物车的东西构建API,我需要一个端点来从购物车中删除一个项目。

目前,我假设使用此API的客户端不需要实际的“购物车商品”。相反,它只需要购物车中的产品列表。

然而,似乎没有任何方法可以在不知道该东西的ID的情况下删除jsonapi-resources中的内容。即如果客户没有知道连接模型的ID,就无法从购物车中删除某些东西。

基本上我需要一个类似于:

的端点

DELETE http://example.com/carts/1/cart-items?filter[product]=1

相反,我能找到的唯一选择是

DELETE http://example.com/cart-items/1

或者,我可以实现一个自定义操作来处理这个问题,但是我已经浏览了文档,但我找不到编写自定义操作的规定方法。

1 个答案:

答案 0 :(得分:0)

经过几个小时的努力,在写这个问题的过程中,我终于找到了答案。尽管如此,它还没有完全记录下来 - 我必须阅读宝石的测试来解决这个问题。

curl -X DELETE -H "Content-Type: application/vnd.api+json" \ --data '{ "data" : [{"type": "products", "id": 185 }] }' \ http://localhost:3000/api/v1/carts/4085/relationships/products

这已成功从购物车中删除了该项目(并且未触及产品记录本身)。