現在プロジェクトのREST-APIを作成しており、ベストプラクティスに関する記事を読んでいます。多くの人はDTOに反対しているようで、単にドメインモデルを公開しているようですが、他の人はDTO(またはユーザーモデルなど、呼びたいもの)は悪い習慣だと考えているようです。個人的には、この記事は非常に理にかなっていると思いました。
ただし、すべての追加のマッピングコード、DTOの対応物と100%一致する可能性のあるドメインモデルなど、DTOの欠点も理解しています。
私たちのAPIは、他のクライアントがデータを消費できるように作成されていますが、適切に実行した場合は、可能であれば独自のWeb GUIにも使用したいと思います。
問題は、すべてのドメインデータを他のクライアントユーザーに公開したくない場合があることです。データの多くは、私たち自身のWebアプリケーションでのみ意味があります。また、すべてのシナリオでオブジェクトに関するすべてのデータ、特に他のオブジェクトとの関係などを公開したくない場合もあります。たとえば、特定のオブジェクトのリストを公開する場合、必ずしもオブジェクト階層全体を公開する必要はありません。そのため、オブジェクトの子は公開されませんが、リンク(ハテオア)を通じて発見できます。
この問題を解決するにはどうすればよいですか?ドメインモデルでジャクソンミックスインを使用して、さまざまなシナリオで公開されるデータを制御することを考えていました。それとも、DTOをずっと使用するべきでしょうか?欠点や論争があるとしても?