web-dev-qa-db-fra.com

Quelle couche doit être utilisée pour la conversion en DTO à partir d'un objet de domaine

Nous créons des API de repos avec Spring Boot. Nous avons trois couches dans notre projet (référentiel, service et contrôleur).

Disons que mon API GetUser dans mon contrôleur renvoie un objet UserDTO.

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

Que userService.getUser() renvoie UserDTO objet ou qu'il retourne User objet et qu'il soit converti en UserDTO objet dans le contrôleur? Laquelle est la meilleure façon?

En bref, la conversion d'un objet de domaine en objet DTO doit être effectuée dans la couche service ou la couche contrôleur?

14
Suleyman Arıkan

Cela dépend des besoins et de l'architecture de l'application. L'idée est de conserver la conversion dto sur Edge. Il est généralement préférable d'avoir la conversion dto et de domaine au niveau du contrôleur. Si vous souhaitez garder les services/la logique métier indépendants du consommateur, il est toujours préférable d'avoir au niveau de l'API. Cela devient plus clair si votre service a été consommé par plusieurs consommateurs.

1
Imran Javed