Ich entwerfe eine RESTful API, um Bestellungen und Zahlungstransaktionen darzustellen. Mein (vereinfacht) Modell sieht wie folgt aus:Wie verknüpfe ich verwandte Daten in einer REST-API?
--------- ---------------
| order |----<| transaction |
--------- ---------------
das heißt ein Auftrag viele Transaktionen haben kann. Wenn ich diese Endpunkte haben die Ressourcen zu erhalten:
/orders/{id}
/orders/{id}/transactions
Wo der zweite Aufruf eine Liste von Transaktionsobjekte zurückgibt (erweitert oder nur IDs, die dann über :)
/transactions/{id}
zugegriffen werden kann, wie soll ich die Bestellressource aktualisieren, um ihre Transaktionen zu beschreiben?
Sollte ich eine Liste von Transaktionsobjektdaten an /orders/{id}/transactions
POST, und sie werden erstellt und mit der Auftragsressource verknüpft?
Oder sollte ich jede Transaktion /transactions
POST und dann PUT (oder POST?) Bis /orders/{id}/transactions
eine Liste der Transaktions-IDs?
... oder etwas anderes?
Was passiert, wenn ich bereits eine Transaktionsressource habe und diese verknüpfen möchte?