我正在使用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
或者,我可以实现一个自定义操作来处理这个问题,但是我已经浏览了文档,但我找不到编写自定义操作的规定方法。
答案 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
这已成功从购物车中删除了该项目(并且未触及产品记录本身)。