-
Notifications
You must be signed in to change notification settings - Fork 1
OrderController: PUT
Für einen PUT-Request übergibt man der API eine schon vorhandene Bestellung mit den Änderungen.
Beispiel für das ändern einer Bestellung (PUT: /api/order
):
Response eines GET-Requests:
[
{
"id": 1,
"createdAt": "2020-05-12T21:32:43",
"customer": {
"id": 1,
"firstname": "Philipp",
"lastname": "Heim",
"address": {
"id": 1,
"street": "Im Waldweg 3",
"zip": "77974",
"city": "Meißenheim"
},
"createdAt": null
},
"orderedProducts": [
{
"id": 1,
"name": "Yokohama Sommerreifen",
"price": 250,
"sku": "110132751",
"quantity": 5
}
],
"state": {
"id": 1,
"value": "Nicht Bezahlt"
}
}
]
Nun möchten wir z.B. den Status ändern, von "Nicht Bezahlt" in "Bezahlt". Um den Status einer Bestellung zu ändern, muss man die Id der State-Property der Order verändern, hier von ID 1 -> ID 2
Payload des PUT-Requests:
WICHTIG: Die vereinfachte Darstellung der Order dient nur zur Übersichtlichkeit, sie muss nicht auf diese minimal form gebracht werden!
[
{
"id": 1,
"customer": {
"id": 1,
},
"orderedProducts": [
{
"id": 1,
"quantity": 5
}
],
"state": {
"id": 2
}
}
]
Bei erfolgreichem Request sendet der Server folgenden Response:
HTTP: 204 No Content
Bei Änderungen an Ressourcen muss immer die ganze Ressource mitgeschickt werden, nicht nur einzelne Teile.
Für alle Controller gilt: Existiert ein Objekt schon, reicht die ID. Falls das Objekt verändert werden soll, sendet man die ID + alle Properties des Objektes. Soll ein Objekt erstellt werden, lässt man die ID null.
Spezialfall OrderController: Wenn ihr zu viel Properties dem Controller sendet, werden diese ignoriert, es löst keinen Fehler aus, so kann also direkt das Objekt welches von GET kommt bearbeitet und an PUT gesendet werden !