Stiamo sviluppando un'applicazione REST basata su un'architettura MVC.
Il livello di servizio restituisce Optional<T>
dove T
potrebbe essere qualsiasi classe.
Quindi sul livello controller c'è un'istruzione condizionale che verifica se il risultato è Optional.empty
, quindi restituisce una risposta personalizzata con dati []
; altrimenti, restituire i dati effettivi in una risposta HTTP risposta personalizzata.
return ABCService
.getById("")
.map("custom response with actual data ")
.orElse(Collections.empty in Custom response)
;
È una cattiva pratica scrivere questo codice nel livello Controller?
Stiamo restituendo Optional<T>
perché non vogliamo inviare null
. Se non usiamo questa condizione sul livello Controller, dobbiamo rimuovere anche Optional
dal livello di servizio, che non credo sia una buona pratica.
Qualcuno può spiegare perché il codice sopra non è una buona pratica? Quali potrebbero essere le conseguenze?