단일 페이지 응용 프로그램에 REST API를 제공하는 ASP.NET 웹 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가 있어야합니까?