2017-12-14 35 views
0

Spring Boot로 나머지 API를 만듭니다. 우리는 프로젝트 (저장소, 서비스 및 컨트롤러)에 세 개의 레이어를 가지고 있습니다.Domain 객체에서 DTO로 변환 할 때 사용해야하는 레이어

내 컨트롤러에 UserDTO 개체를 반환하는 GetUser API가 있다고 가정 해 보겠습니다.

@GetMapping 
public UserDTO getUser() { 
    return userService.getUser();  
} 

userService.getUser() 여부를 반환 객체 인 UserDTO 개체가 아니면 사용자 개체를 반환하고 그것은 컨트롤러 객체 인 UserDTO 객체로 변환된다? 어느 것이 더 좋은 방법일까요?

도메인 개체를 DTO 개체로 변환하려면 서비스 계층이나 컨트롤러 계층에서 수행해야합니까?

답변

0

도메인 객체를 DTO 객체로 변환하는 "더 나은 방법"이 없다고 생각합니다. 이는 맛의 문제입니다. 내 프로젝트에서 나는 "비즈니스 로직"의 일환으로 도메인 객체를 서비스 계층의 DTO로 변환한다. 따라서 도메인 개체의 액세스 가능성을 서비스 계층으로만 줄일 수 있습니다. 또한 컨트롤러 내부의 "논리"를 응용 프로그램 계층의 일부로 축소하려고합니다.

추 신 : 도메인 객체를 DTO로 변환하는 몇 가지 방법을 찾고 있다면 최신 Stackoverflow 질문 중 하나를 살펴보십시오 (How to properly convert domain entities to DTOs while considering scalability & testability)