我经历了 2 个使用 Lagom 开发微服务架构系统的示例,即“chirp”和“cargotracker”,但没有一个显示如何更新到现有实体。
例如,具有 REST URI 的以下实体
建议{ id 内容 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) 带有 Http Put 的 api/suggestion/viewCount?
2) api/suggestion/:id 与 Http Put ?
3) api/suggestion/:id 与 Http Post ?
以上3种方法有一些缺点
对于 1),需要为每个字段定义一个单独的数据类,否则直接在 Suggestion 实体上更新会引入“可变更改”,这违反了 Lagom 的原则。
对于 2)&3),需要旧状态的深层副本并使用更改的字段进行更新,否则也会引入“可变更改”。
还有其他选择吗?
谢谢