Risposta POST API per oggetti gerarchici

0

Se invio una richiesta POST per aggiornare alcuni oggetti in un DB, come ad esempio:

User{
    id: 20,
    name: "Jack",
    UserAssociations:[{
                   id: 100,
                   association: object1
               },{....}]
   ........
}

Dove invio un oggetto principale insieme a un array di oggetti figlio a un servizio REST, ma mi aspetto che gli ID che ottengo dal server siano diversi da quelli che ho. Quindi il mio ID locale per l'utente Jack potrebbe essere 20, ma nel database stesso sarà 50. Lo stesso per gli oggetti figlio. Qual è la procedura migliore per restituire un messaggio di risposta che associa il vecchio valore ID al nuovo valore ID. Voglio spingere tutto come un'unica transazione (dove se una qualsiasi parte del POST fallisce, l'intera cosa fallisce). L'unico modo in cui riesco a pensare ora è qualcosa come:

      Response{
         success: "status message",
         id: 50,
               UserAssociations: [{
                    originalID: 100,
                    newID: 8421
                     }]
        }

Dove ho appena una matrice di valori per ogni oggetto figlio contenente 2 campi, l'ID che ho passato e il nuovo ID che sto recuperando. Il problema principale che sto avendo con questo è che mi richiederebbe di eseguire il loop dei miei dati localmente per abbinare gli ID da aggiornare. C'è una pratica migliore che mi manca per evitare questo?

    
posta gdawgrancid 02.07.2018 - 19:43
fonte

1 risposta

0

Direi che l'approccio comune in cui la modifica dell'ID o che vengono creati sull'inserimento nel database è la restituzione dell'intero nuovo oggetto.

Quindi scarti qualunque oggetto inviato e lo sostituisci con quello nuovo dal server.

Non ti interessa quali dei tuoi oggetti figlio vecchio si mappano a quelli nuovi, perché li hai semplicemente scartati.

L'altro approccio è naturalmente quello di generare il lato client Ids e non sul database. Puoi quindi mantenere gli stessi ID.

    
risposta data 02.07.2018 - 20:34
fonte

Leggi altre domande sui tag