REST API - DTOs oder nicht?

Ich bin derzeit auf der Erstellung einer REST-API für ein Projekt und lese Artikel, die auf Artikel über "best practices". Viele scheinen gegen DTOs und einfach nur aussetzen, domain-Modell, während andere scheinen zu denken, DTOs (oder Benutzer Modelle oder was auch immer Sie es nennen wollen) sind eine schlechte Praxis. Persönlich, ich dachte, dass dieser Artikel eine Menge Sinn.

Allerdings verstehe ich auch die Nachteile von DTOs mit all den zusätzlichen mapping-code, domain-Modelle, die möglicherweise 100% identisch zu der DTO-Pendant und so weiter.

Unsere API ist meist so angelegt, dass andere clients beanspruchen kann, ist-Daten, aber wenn wir es richtig machen, würden wir auch gerne für unsere eigene web-GUI, wenn möglich.

Die Sache ist die, dass wir möglicherweise nicht verfügbar machen möchten, alle domain-Daten an den anderen client-Benutzer. Der Großteil der Daten wird nur dann Sinn machen, in unserem eigenen web-Anwendung. Auch wir möglicherweise nicht verfügbar machen möchten, werden alle Daten über ein Objekt in allen Szenarien, insbesondere die Beziehungen zu anderen Objekten und so weiter. Zum Beispiel, wenn wir über eine Liste von einem bestimmten Objekt würden wir nicht unbedingt wollen, setzen Sie das gesamte Objekt-Hierarchie, so dass das Objekt, das die Kinder nicht ausgesetzt werden, sondern kann entdeckt werden durch links (hateoas).

Wie soll ich über die Lösung dieses Problems? Ich dachte über die Verwendung von Jackson Mixins in Verbindung auf unsere domain-Modelle zu Steuern, welche Daten zur Verfügung gestellt würden verschiedene Szenarien. Oder sollten wir einfach die Verwendung von DTOs alle Weg - auch angesichts Ihrer Nachteile und kontroversen?

InformationsquelleAutor der Frage benbjo | 2016-03-23

Schreibe einen Kommentar