Sto costruendo API web. Ho un problema in cui l'input è diverso dall'output, ad esempio, l'input si aspetta solo l'id e l'output restituisce l'intero oggetto.
Inoltre, ci sono alcune cose specifiche per l'output che non dovrebbero mai essere inviate nell'input. Ad esempio, qualcosa che il server calcola e restituisce, ma il client non ha bisogno di passare questo valore.
Attualmente sto usando DTO, sono gli stessi sia per l'input che per l'output.
Esempio minimo:
public class ProductDto
{
// Should be only included in the output, should be ignored on the input
public decimal SomePropertyCalculatedOnTheServer { get; set; }
// Should only be included in the output
public TaxDto Tax { get; set; }
// Only for input
public int TaxId { get; set; }
}
Probabilmente posso semplicemente ignorare queste cose nella mia configurazione di mappatura, ma non sarebbe meglio creare un modello separato per input e output? Attualmente sembra brutto ed è difficile da mantenere.
Il mio livello di servizio accetta quelli Dtos, li mappa con le mie entità e opera su di essi, quindi li mappa e li restituisce. Tutto utilizza 1 modello.
Task<TEntityDto> CreateAsync(TEntityDto entityDto)