web-dev-qa-db-ja.com

ドメインオブジェクトからDTOへの変換に使用するレイヤー

Spring BootでREST APIを作成しています。プロジェクトには3つのレイヤー(リポジトリ、サービス、コントローラー)があります。

コントローラにGetUser APIがあり、UserDTOオブジェクトを返すとします。

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

userService.getUser()UserDTOオブジェクトを返すのか、それともUserオブジェクトを返し、コントローラーでUserDTOオブジェクトに変換されるのか?どちらが良い方法ですか?

まもなく、ドメインオブジェクトからDTOオブジェクトへの変換は、サービスレイヤーまたはコントローラーレイヤーで実行する必要がありますか?

14

それはアプリケーションのニーズとアーキテクチャに依存します。 Edgeでdto変換を維持するのがアイデアです。一般に、コントローラレベルでdtoおよびドメイン変換を行うことをお勧めします。サービス/ビジネスロジックをコンシューマーから独立させたい場合は、APIレベルで行うことをお勧めします。サービスが複数のコンシューマによって消費されている場合、これはより明確になります。

1
Imran Javed