Relazioni di REST oltre a genitore / bambino

2

Questa sembra essere una domanda piuttosto semplice, ma non riesco a trovare linee guida approprafili per questo. Qual è il modo "riposante" di POST di una relazione tra due entità che non sono necessariamente genitore / figlio. Ad esempio, considera clienti e ordini.

Si potrebbe creare un cliente con un POST in /customer . Tuttavia, qual è il modo migliore per creare l'ordine? Un esempio potrebbe essere un POST a /customer/123/order , ma cosa succede se l'ordine non è assegnato direttamente a un cliente e potrebbe esistere da solo (nel caso di un carrello Web che consente il checkout "anonimo") ? È il modo giusto, quindi, per fare POST /order?customerId=123

Inoltre, considera il caso in cui un ordine può essere inviato separatamente dai pagamenti (diciamo che fatturiamo un cliente). È possibile creare l'ordine (per uno dei due metodi precedenti), ma come faremo il pagamento? POST /order/123/payment o POST /payment?orderId=123 (se supponiamo che un pagamento possa essere effettuato per qualcosa di diverso da un ordine, e si potrebbe desiderare di ottenere informazioni su un ordine / pagamento senza conoscere il cliente specifico).

    
posta Colin M 28.09.2013 - 00:49
fonte

1 risposta

3

Direi che se un ordine è un oggetto di prima classe, usa /order . Se deve essere associato a uno o più clienti, gli ID cliente dovrebbero essere un attributo dell'oggetto ordine.

    
risposta data 28.09.2013 - 02:13
fonte

Leggi altre domande sui tag