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?
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.