そのそもDtoってなに?
Domain Transfer Objectの略
Repositoryによる通信結果の値を表現するもの
→Repositoryがわからない方はこちら。
アプリケーション内や外部システムとの間で
特徴
データ構造の定義で用いられる(domain)
2、シリアライズとデシリアライズ
JSONなどのフォーマットでデータを送受信する際にDTOはそのデータをオブジェクトに変換したりオブジェクトをデータに変換したりする。
3、型安全の向上
DTOを使用することでデータの型が保証され、エラー発生を防ぐことができる。
6つの利点
①データのカプセル化
APIレスポンスから受け取ったデータをそのままUIに渡さないでDTOを介して必要なデータだけ送信する。
②ドメイン層との分離
アプリケーションのビジネスロジック(ドメイン層)とデータのやり取り(データ層)を分離できる為、アーキテクチャが明確になりやすい。
ドメインモデルが変更されてもデータのやり取りを担うDTOには影響がない。
③セキュリティの向上が見込める点
DTOを用いると不要なフィールドをAPIレスポンスに含めないようにできる。
④柔軟なデータ変換
⑤パフォーマンスの最適化
⑥テストが簡単になる