Esiste un approccio Spring per filtrare i campi da una risposta del servizio con JSON views, ma manca un approccio equivalente per arricchire una risposta con alcuni campi dinamici/sintetici come questo;Aggiungere campi dinamici a Spring Risposta JSON
class User{
getFirstName(){...}
getLastName(){...}
getCreateDate(){...}
}
class UserViewA{
getFullName(){
return getLastName()+", "+getFirstName()
}
getCreateDate(){...}
}
class UserViewB{
getFullName(){
return getFirstName()+" "+getLastName()
}
getCreateDate(){...}
}
Potrei racchiudere l'utente all'interno della vista, ma non voglio propagare manualmente tutti i campi utente necessari.
Un'altra mia idea era di estendere le viste con l'oggetto utente e creare una sorta di linker di riferimento per copiare i riferimenti dei valori dall'oggetto utente alla vista, ma questo si complicherebbe con le raccolte.
C'è qualche altro approccio o struttura per raggiungere questo obiettivo? Questo concetto non è affrontato in alcun modo?
Aggiornamento:
Chiarimento con l'esempio:
- Non voglio per avvolgere l'oggetto utente perché non voglio mantenere stessi metodi getter dalla classe per l'utente in diversi oggetti UserView .
- Non riesco ad estendere l'Utente perché è un oggetto dominio caricato da un'altra risorsa.
- Non ci dovrebbero essere riferimenti a diversi oggetti UserView nell'oggetto Utente.
Sto cercando un tipo di soluzione/struttura/approccio facciata.
Così 'UserViewA 'non può ereditare da' Utente'? In tal caso, direi che AOP è la soluzione migliore. – kaqqao
@kaqqao 'UserViewA' può ereditare da' Utente' ma non posso estendere/modificare 'Utente'. – kromit