2017-11-02 2 views
2

Ich arbeite ein kleines Projekt. Dies ist das erste Mal, dass ich einen erholsamen Service benutze. Ich erstelle einen Webshop und eine App, die einen erholsamen Service nutzen. Ich habe eine DAP erstellt, um Kleidung im Webshop zu bestellen.RESTful Domain Application Protocol für eine Bestellung

DAP: enter image description here

Zustandsübergänge in het DAP:

enter image description here

Ich möchte wissen, ob ich eine richtige DAP gemacht, wenn der URI Tunneling korrekt ist, und wenn die Zustandsübergänge sind Recht.

Vielen Dank für Ihre Hilfe!

Edit: die erste POST muss sein/bestellt nicht/1

+1

Wird zum ersten Mal ein neuer Auftrag erstellt? Der URI/order/1 existiert bereits vor der Erstellung der Entity? – Kalamarico

+1

Oh mein Fehler. Es muss/Bestellung sein – mrobertini1239

Antwort

2

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.