Sto lottando con l'architettura per un nuovo progetto. Sto usando i seguenti modelli / tecnologia.
- CQRS - tutto ciò che sta entrando passa attraverso un comando
- REST - utilizzando WebAPI
- MVC - asp.net mvc
- Angolare - costruzione di una spa
- NHibernate
Credo che ciò fornisca una grande separazione e dovrebbe aiutare a mantenere un dominio molto complesso dalla crescita in un gigantesco set di servizi che mescola le query con altre logiche di business.
- I servizi REST sono diventati non riposanti. Stanno mettendo a riposo metodi che sono "SearchByDate", "SearchByItem" ecc.
- I metodi di servizio che eseguono i comandi vengono chiamati con una classe del modello "web", un nuovo comando viene creato nel servizio ed eseguito, mi sembra che ci sia un sacco di codice in più.
Mi aspettavo che questo fosse molto diverso ma non ero in giro per mantenere le cose in pista.
Finalmente le mie domande sono ...
Mi sarebbe piaciuto vedere PUT Person (CreatePersonCommand)
ma poi ho capito che non è riposante o è vero? la put dovrebbe essere un'entità persona non un comando.
Posso far funzionare il servizio CQRS e REST o sto sbagliando tutto questo?
Come faccio a gestire i metodi di servizio che non rientrano in un modello REST. Non sto eseguendo CRUD sull'oggetto ma piuttosto eseguendo alcune logiche di business. OSSIA Non voglio che l'interfaccia utente sia responsabile del modo in cui una spedizione è "non tagliata". Voglio che il livello di servizio si preoccupi di ciò.