2017-03-29 1 views
0

저는 jsonapi-resources gem을 사용하여 장바구니 유사 물건을위한 API를 구축하고 있으며 장바구니에서 항목을 제거하려면 엔드 포인트가 필요합니다.JSON API 삭제 '많은 관계가 있습니다.'

현재이 API를 사용하는 클라이언트는 실제 '장바구니 항목'이 필요하지 않다고 가정합니다. 대신 장바구니에있는 제품 목록 만 있으면됩니다.

그러나 jsonapi 리소스에서 뭔가를 삭제할 수있는 방법이없는 것 같습니다. 나는. 클라이언트가 조인 모델의 ID를 모른 채 카트에서 무언가를 제거 할 방법이 없습니다.

은 기본적으로 내가 좋아하는 무언가를 엔드 포인트 필요

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

대신, 내가 찾을 수있는 유일한 옵션은 또한

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

입니다, 나는에 사용자 지정 작업을 구현할 수 이 문제를 해결할 수는 있지만 문서를 검토 한 결과 사용자 지정 작업을 작성하는 데 필요한 방법을 찾을 수 없습니다.

+0

이 경로를 만들려면 'DELETE http://example.com/carts/1/cart-items?filter [product] = 1'을 (를) 만드시겠습니까? – ashvin

+0

코멘트 주셔서 감사합니다! 나는 결국 그것을 해결했다. 보석이 그러한 기능을 제공한다면 경로 *가 어떻게 보이는지를 보여주는 예일뿐입니다. – Obversity

답변

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

성공적으로 장바구니에서 항목을 삭제 (및 제품 기록 자체를 만지지 않았다).

관련 문제