Spring BootでREST APIを作成しています。プロジェクトには3つのレイヤー(リポジトリ、サービス、コントローラー)があります。
コントローラにGetUser APIがあり、UserDTO
オブジェクトを返すとします。
_@GetMapping
public UserDTO getUser() {
return userService.getUser();
}
_
userService.getUser()
がUserDTO
オブジェクトを返すのか、それともUser
オブジェクトを返し、コントローラーでUserDTO
オブジェクトに変換されるのか?どちらが良い方法ですか?
まもなく、ドメインオブジェクトからDTOオブジェクトへの変換は、サービスレイヤーまたはコントローラーレイヤーで実行する必要がありますか?
それはアプリケーションのニーズとアーキテクチャに依存します。 Edgeでdto変換を維持するのがアイデアです。一般に、コントローラレベルでdtoおよびドメイン変換を行うことをお勧めします。サービス/ビジネスロジックをコンシューマーから独立させたい場合は、APIレベルで行うことをお勧めします。サービスが複数のコンシューマによって消費されている場合、これはより明確になります。