Rozważmy następujące gruboziarnistej API REST dla zasobu KontaktJak obsługiwać polecenia w REST podczas wspólnego korzystania z usług REST, CQRS i EventSourcing?
POST /api/contacts
GET /api/contacts
GET /api/contacts/:id
PUT /api/contacts/:id
DELETE /api/contacts/:id
Rozważ użycie eventsourcing dla zasobu kontaktowej, czyli rozkazy są sprawdzane i zdarzenia są przechowywane. Zatem każde zdarzenie musi być przechowywane, w tym każda zmiana poziomu pola.
CreateContactCommand -> | Contact("john", "doe", 25) | -> ContactCreatedEvent
FirstNameChangeCommand -> | Contact("jane", "doe", 25) | -> FirstNameChangedEvent
LastNameChangeCommand -> | Contact("jane", "dear", 25) | -> LastNameChangedEvent
AgeChangeCommand -> | Contact("jane", "doe", 30) | -> AgeChangedEvent
Teraz, łącząc REST i EventSourcing oba.
Wykonywanie REST, w jaki sposób klient komunikuje się z powyższymi standardowymi interfejsami API usług REST w celu zmiany na poziomie pola, aby wygenerować polecenia po punkcie końcowym REST po stronie serwera?
Najważniejsze pytanie brzmi: jak zaprojektować interfejs REST API, aby mógł on obsługiwać polecenia, które ostatecznie wspierają eventourcing?
Jeśli ktokolwiek mógłby rzucić światło na to, pomoc byłaby bardzo ceniona.
Powiązane: http://stackoverflow.com/q/30074785/126014 –
Czy istnieje szczególny powód, aby krzyczeć na nas (pisanie pogrubioną czcionką)? –