Ich arbeite an einer Back-End-Anwendung, die eine REST-API freigibt, und ich (versuche) Domain Driven Design in meinem Projekt zu verwenden.Sollten API-Infrastrukturklassen Teil der Domäne in DDD sein?
Die REST-API arbeitet mit einer festen Gruppe von Domänenklassen. Für jede Agregate-Wurzel aus der Domäne gibt es einen separaten REST-Endpunkt. Doch trotz aller Bemühungen gibt es Fälle, wenn neue Klassen, nicht von den Domain-Klassen (Infrastruktur Klassen) Ableiten entstehen, zB:
- ein Klasse Haltezustände von Batch-Operationen
[{"id": 1, "status": "success"},{"id": 2, "status": "failure", "message": "detailed message"}]
- eine Klasse mit den Säulen vom Benutzer gewählten
[{"column": "id", "order": 1}, {"column":"created", "order": 2 }]
nun zwei Möglichkeiten:
- ist es in Ordnung, die REST-API aussetzen Klassen zu haben, die nicht Teil sind die Domain?
- oder sollten diese Klassen Teil der Domäne werden?
Ich denke, es ist völlig in Ordnung, Verträge, die Schicht-spezifisch sind, zu veröffentlichen. Zum Beispiel werden DTOs normalerweise in der Anwendungsschicht definiert ... – plalx