Das Problem der meisten Menschen machen, wenn sie mit erholsamen Diensten ausgehend denkt, dass alles auf eine Ressource gilt, in Ihrem Fall um.
In der Tat arbeiten Sie mit 3 Ressourcen, orders
, payments
und deliveries
- wenn Sie dies realisieren, dann erweitern Sie Ihre Optionen plötzlich.
Nun könnte man so etwas tun:
POST /order (creates order, returns Order Id)
POST /order/{OrderId}/cancel (updates order to cancelled **)
POST /order/{OrderId}/payments (creates a payment for Order, returns Payment Id ***)
POST /payments/{PaymentId}/deliveries (creates a delivery for a Payment, returns Delivery Id ***)
** Dies ist ein strittiger Punkt in RESTful-Design, könnte auch ein PUT sein, die Wahl letztlich. there is a ton of discussions on the topic
*** Dies macht Sinn, weil Sie würde nur eine Zahlung oder Lieferung in Bezug auf eine anderen
Ressource erstellen Dann könnten Sie die zusätzlichen Mittel als solchen Zugang oder ändern:
GET /payments
GET /payments/{PaymentId}
DELETE /payments/{PaymentId}
PUT /payments/{PaymentId}
GET /deliveries
GET /deliveries/{DeliveryId}
DELETE /deliveries/{DeliveryId}
PUT /deliveries/{DeliveryId}
Hoffnung, das gibt Ihnen noch ein paar Ideen.
Wird zum ersten Mal ein neuer Auftrag erstellt? Der URI/order/1 existiert bereits vor der Erstellung der Entity? – Kalamarico
Oh mein Fehler. Es muss/Bestellung sein – mrobertini1239