Angenommen, ich habe einen Online-Shop mit einer "Warenkorb" -Funktion und möchte einen "leeren Warenkorb" -Link auf REST-basierende Weise implementieren.RESTful Multiple Updates (Beispiel: Löschen eines Einkaufswagens)?
Zur Vereinfachung sagen wir, meine Ressourcen sind ein Warenkorb, der Einkaufswagen enthält, von denen jeder ein Produkt hat. Mein URIs könnte sein:
# add a product to the current user's Cart POST /products/product_id/cart_items/ # remove a product from the current user's Cart DELETE /cart_items/cart_item_id/
Wenn ja, was wäre der RESTful-URI für die „leeren Warenkorb“ -Link aus?
Stattdessen könnte ich denke an den Wagen als Allzweckhalter für Aktionen (as described here):
# add a product # form data contains e.g., product_id=123&action=add POST /carts/cart_id/actions/ # remove a product # action_id is the id of the action adding product 123 DELETE actions/action_id # empty cart # form data contains action=clear POST /carts/cart_id/actions/
Dieser Ansatz komplizierter scheint als es sein muss. Was wäre ein besserer Weg?
Das Entleeren des Wagens mit 'DELETE carts/{cartid}/items' sieht in Ihrem (ansonsten sehr übersichtlichen) Beispiel viel intuitiver aus. – Tomas
Sicherheitsbedenken, wenn Sie eine cartId in eine URL einfügen möchten? –
@Breako nicht, wenn die Kartei eine zufällig generierte GUID ist. Selbst dann sollten Sicherheitsüberprüfungen durchgeführt werden, um den "Besitzer" des Wagens zu validieren. –