Ho la mia (JSON) API strutturata come questa (di cui sono abbastanza felice):
Progetto API
/_V1
/Controllers
V1EntityController.cs // Applies to version 1 only
/_V2
/Controllers
V2OtherEntityController.cs // Applies to versions 2 and below
/Controllers/
EntityController.cs // Applies to versions 2 and above
OtherEntityController.cs // Applies to versions 3 and above
Progetto principale
/Data/Entity.cs
/Data/OtherEntity.cs
Tuttavia, con il progredire del progetto, sia le classi Entity
che OtherEntity
sono diventate piene di proprietà legacy e un sacco di metodi ShouldSerializexxx
. Inoltre, contengono anche proprietà e sottoclassi che sono solo per la serializzazione.
Sarebbe una soluzione migliore per creare "Modelli" nel progetto API in questo modo:
Progetto API
/_V1
/Controllers
V1EntityController.cs
/Models
V1EntityModel.cs
/_V2
/Controllers
V2OtherEntityController.cs
/Models
V2OtherEntityModel.cs
/Controllers
EntityController.cs
OtherEntityController.cs
/Models
EntityModel.cs
OtherEntityModel.cs
Quindi convertire da e verso le classi nel progetto principale? Qual è la pratica riconosciuta nel settore per la gestione di questo scenario?