Я рассмотрел 2 примера использования Lagom для разработки системы микросервисной архитектуры, а именно «chirp» и «cargotracker», но ни один из них не показывает, как обновить существующую сущность.
Например, наличие следующего объекта с REST URI
Предложение { id content viewCount автор }
api/suggestion with Http Post ----> add a new suggestion
api/suggestion/:id with Http Get, ---->read a suggestion
api/suggestion/:id with Http Delete, ---->remove a suggestion
Как насчет обновления?
1)api/suggestion/viewCount с помощью Http Put?
2)api/suggestion/:id с Http Put?
3) api/suggestion/:id с Http Post?
Есть некоторые недостатки вышеупомянутого 3 подхода
для 1), необходимо определить отдельный класс данных для каждого поля, в противном случае обновление непосредственно в объекте Suggestion приведет к «изменяемым изменениям», что противоречит принципу Lagom.
для 2) и 3), требуется глубокая копия старого состояния и обновление с измененными полями, в противном случае также вводятся «изменяемые изменения».
Есть ли другие варианты?
Спасибо