2012-03-17 9 views
7

Mam sytuację w mojej aplikacji Play Framework, gdzie kilka modeli zależy od innych modeli, co stwarza potencjalne niebezpieczeństwa podczas próby serializowania ich do JSON. Ponadto w każdym modelu istnieje kilka właściwości, których nie chcę ujawniać klientowi. Na koniec, niektóre z właściwości instancji moel, które otrzymuje klient sieciowy, nie pochodzą z DB, ale z usługi WWW innej firmy.DTO w Play Framework

Słyszałem, że możliwe jest zastosowanie niestandardowego serializera przed renderowaniem obiektu do JSON, ale chciałbym użyć jeszcze prostszego podejścia: DTO, który jest następnie serializowany do JSON.

Pytanie brzmi, gdzie powinienem umieścić funkcję konwersji DTO dla każdej klasy modelu? Kontroler? Model? Być może najlepszym podejściem byłoby śledzenie strategii serializatora i stworzenie kilku klas konwersji - po jednym dla każdego modelu?

Moim największym zmartwieniem jest to, że konwertery również powinny wiedzieć o sobie nawzajem, ponieważ oczywiście chciałbym najpierw obrócić każdą instancję książki w instancji autora do DTO, a następnie włączyć autora do DTO. Czy to naprawdę jest złe?

Odpowiedz

3

W standardowej aplikacji Java EE (wiosna), należy użyć Dozer framework, aby dokonać konwersji między obiektami modelu i DTO.

W grze! kontekście, powinienem umieścić DTO i konwertery w specjalnym pakiecie, lub w podpakietie z models.