Ich arbeite an einem Projekt, in dem wir versuchen, sowohl domänenbasiertes Design als auch REST auf eine serviceorientierte Architektur anzuwenden. Wir sorgen uns nicht um 100% REST-Konformität. Es ist wahrscheinlich besser zu sagen, dass wir versuchen, ressourcenorientierte HTTP-APIs zu erstellen ( Stufe 2 von Richardsons REST-Reifegradmodell). Wir versuchen jedoch, die Verwendung von HTTP-Anforderungen im RPC-Stil zu vermeiden , dh wir versuchen, unsere HTTP-Verben gemäß RFC2616 zu implementieren, anstatt POST
dies IsPostalAddressValid(...)
beispielsweise zu tun .
Eine Betonung hierauf scheint jedoch auf Kosten unseres Versuchs zu gehen, ein domänengetriebenes Design anzuwenden. Mit nur GET
, POST
, PUT
, DELETE
und ein paar anderen selten verwendeten Methoden, neigen wir cruddy Dienste zu bauen, und cruddy Dienste sind in der Regel anämische Domänenmodelle haben.
POST
: Empfangen Sie die Daten, validieren Sie sie, speichern Sie sie in den Daten. GET
: Daten abrufen, zurückgeben. Keine wirkliche Geschäftslogik da. Wir verwenden auch Nachrichten (Ereignisse) zwischen den Diensten, und es scheint mir, dass der größte Teil der Geschäftslogik darauf aufbaut.
Sind REST und DDD auf einem gewissen Niveau angespannt? (Oder verstehe ich hier etwas falsch? Tun wir vielleicht etwas anderes falsch?) Ist es möglich, ein starkes Domänenmodell in einer serviceorientierten Architektur zu erstellen, während HTTP-Aufrufe im RPC-Stil vermieden werden?
IsPostalAddressValid(...)
Zweck zum Thema "Bereitstellen eines Datenblocks, z. B. des Ergebnisses der Übermittlung eines Formulars, für einen Datenverarbeitungsprozess" passen würde?