単一ページアプリケーションにREST APIを提供するASP.NET Web APIがあります。DTO / POCOを使用して、このAPIを介してデータを渡します。
問題は、これらのDTOが時間とともに大きくなっていることです。そのため、DTOをリファクタリングしたいと考えています。
DTOを設計する「ベストプラクティス」を探しています。現在、値型フィールドのみで構成される小さなDTOがあります。
public class UserDto
{
public int Id { get; set; }
public string Name { get; set; }
}
他のDTOは、構成によってこのUserDtoを使用します。例:
public class TaskDto
{
public int Id { get; set; }
public UserDto AssignedTo { get; set; }
}
また、他から継承することによって定義される拡張DTOがいくつかあります。たとえば:
public class TaskDetailDto : TaskDto
{
// some more fields
}
一部のDTOは複数のエンドポイント/メソッド(GETやPUTなど)に使用されているため、時間とともにフィールドによって段階的に拡張されています。また、継承と構成により、他のDTOも大きくなりました。
私の質問は、継承と構成はグッドプラクティスではないということですか?しかし、それらを再利用しないと、同じコードを複数回書くような気がします。複数のエンドポイント/メソッドにDTOを使用するのは悪い習慣ですか、またはいくつかのニュアンスのみが異なる異なるDTOが必要ですか?