Restituisce valori per i metodi CRUD?

4

Sto scrivendo un'API web di base in Java che fa quello che fanno quasi tutti gli altri: prendere input, convalidarlo, quindi eseguire operazioni CRUD sul DB. Ho scritto diverse API prima e ho già capito cosa costituisce una buona risposta al client.

Tuttavia, come la maggior parte delle API, ci sono diversi livelli di oggetti invocati tra l'oggetto API del client della porta principale e il codice che esegue effettivamente le query sul database. Ho sempre faticato a sapere quali oggetti di interazione del database dovessero tornare alle funzioni che li chiamano.

Immagino che in caso di errori lancerò delle eccezioni e le catturerò più in alto nello stack delle chiamate. Tuttavia, cosa restituisco in caso di successo? Ecco cosa ho usato prima:

  1. Crea - Restituisce un valore booleano che indica se la creazione ha avuto successo o meno
  2. Leggi - Restituisce l'oggetto richiesto
  3. Aggiorna - Restituisce un valore booleano che indica se l'aggiornamento è andato a buon fine o meno
  4. Elimina - Restituisce un valore booleano che indica se l'eliminazione ha avuto esito positivo o meno

Mi sento a mio agio con i ritorni Leggi ed Elimina, perché non riesco a pensare a cos'altro torneresti in quelle situazioni. Tuttavia, non ho idea di quale sarebbe la migliore pratica per i valori di ritorno dalle funzioni di creazione e aggiornamento. Dovrei restituire un nuovo oggetto con i valori aggiornati? Dovrei modificare l'oggetto che è stato passato? Dovrei semplicemente restituire un valore booleano che indica successo o fallimento?

    
posta dsw88 06.01.2014 - 21:31
fonte

1 risposta

4

Al momento della creazione, di solito restituisco l'ID dell'entità che ho appena creato. In un aggiornamento, restituisco l'oggetto che ho appena aggiornato. Elimina di solito non restituisco nulla.

Nel caso di creare, la parte più interessante è l'id di ciò che è stato creato. Si genera un errore se non si è in grado di creare, quindi il valore booleano che si utilizza non è così interessante. Puoi anche restituire l'intero oggetto con l'ID.

Su un aggiornamento, restituire l'oggetto con qualsiasi campo modificato (o dal programma di aggiornamento o da qualcun altro) ha più senso.

Elimina o funziona o si genera un'eccezione, non è necessario un valore di ritorno.

    
risposta data 06.01.2014 - 21:41
fonte

Leggi altre domande sui tag