Come denominare DTO specifici del metodo che rappresentano la stessa entità?

3

Sto costruendo un'API Web. Per dare un significato ai metodi del mio controller, voglio le classi che specificano quali proprietà sono utilizzate per ogni particolare operazione. Ciò renderebbe il codice più facile da capire e anche i documenti API auto-generati sarebbero più significativi.

Esiste uno schema esistente o almeno un semi standard che possa darmi qualche indicazione su come denominare classi come quelle che seguono?

// Used for POST /entities or PUT /entities/:id
class EntityCommandDto
{
    public string EditableProperty { get; set; }
}

// Used for GET /entities as IEnumerable<EntityQueryDto>
class EntityQueryDto : EntityCommandDto
{
    // Id is read only so no need to have it in the base class
    public int Id { get; set; }
}

// Used for GET /entities/:id
class ExpensiveQueryDto : EntityQueryDto
{
    // Don't want this when getting the whole colletion so I created a separate class
    public object ExpensiveRelatedEntity { get; set; }
}
    
posta Gabriel Smoljár 26.11.2016 - 23:31
fonte

1 risposta

4

Bene, hai ragione su una cosa. Questi nomi sono terribili. Cosa c'è di sbagliato, qui, pensi che parlarci dei metodi in cui sono utilizzati ci fornirà un indizio su cosa dovrebbero essere nominati.

Dovresti modellare qualcosa. Quel qualcosa deve essere un'idea chiara. Così chiaro che ha un nome chiaro. L'idea dovrebbe essere migliore di "l'oggetto di trasferimento dati che viene utilizzato da questo metodo mi sono preso il disturbo di nominare"

Dicci a cosa servono. Cosa rappresentano. Che modello hanno. Dai al tuo dominio la possibilità di essere espresso.

    
risposta data 27.11.2016 - 02:29
fonte

Leggi altre domande sui tag