私は新しい Web API プロジェクトを開始しており、DTO / ビュー モデルの概念を理解しようとしています。DTO はデータのみを保持する必要があり、最終的に到達する前に必要なビジネス ルールを DTO で実行する必要があることを知っています。コントローラーを適切なビュー モデルに変換 (マップ) します。
ただし、私の場合、PutUser アクションは、クライアントからの Json の形式で「UpdateUserViewModel」全体を想定しています。
public HttpResponseMessage PutUser(UpdateUserViewModel user)
{
var userDTO = UserManager.Update(user); // Passing the viewmodel as it is to the business manager
// Perform DTO to view model mapping here and return response.
return Request.CreateResponse(HttpStatusCode.OK,UpdateUserViewModel);
}
私のビジネスレイヤーでは、このビューモデルユーザーをuserDTOにマップし、ビジネスロジックを実行し、userDTOオブジェクトをアクションに返します。アクションはビューモデルにマップされ、応答として返されます。これは正しいアプローチですか、そうすべきですか私のマネージャーは DTO オブジェクトのみを期待しています。基本的に、ViewModel -> DTO のマッピングはどこで行われるべきですか -> ViewModel ですか?
これが正しいアプローチである場合、自動マッパーを使用せずに ViewModel エンティティを DTO にマップし、逆にマップする最良の方法は何ですか?