2017-12-14 19 views
0

Spring Bootで残りのAPIを作成しています。プロジェクト(リポジトリ、サービス、コントローラ)には3つのレイヤがあります。ドメインオブジェクトからDTOへの変換に使用するレイヤー

私はUserDTOオブジェクトを返す私のコントローラにGetUser APIを持っていると言います。

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

戻りUserDTOオブジェクトuserService.getUser()かどうか、それがユーザオブジェクトを返し、それがコントローラにUserDTOオブジェクトに変換されますか?どちらが良い方法ですか?

すぐにドメインオブジェクトをDTOオブジェクトに変換するには、サービスレイヤーまたはコントローラーレイヤーで行う必要がありますか?

答えて

0

ドメインオブジェクトをDTOオブジェクトに変換するための「良い方法」はないと思うのですが、それは味の問題です。私のプロジェクトでは、ドメインオブジェクトをサービスレイヤのDTOに変換して、 "ビジネスロジック"の一部として扱いました。したがって、ドメインオブジェクトのアクセス可能性をサービスレイヤーに限定することができます。さらに、コントローラ内の「ロジック」をアプリケーション層の一部として削減したいと考えています。

PS:ドメインオブジェクトをDTOに変換するいくつかの方法を探している場合、私の最新のStackoverflow質問(How to properly convert domain entities to DTOs while considering scalability & testability)の

関連する問題