通过REST API在Lagom中更新

时间:2016-08-10 03:24:42

标签: microservices lagom

我已经通过2个使用Lagom开发微服务架构系统的例子,即' chirp'和' cargotracker',但没有一个显示如何更新到现有实体。

例如,让以下实体使用REST URI

Sugguestion {    ID    内容    查看次数    作者 }

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 /:带Http Put的id?

3)api / suggestion /:id与Http Post?

上述3 approch有一些缺点

for 1),需要为每个字段定义一个单独的数据类,否则,直接在Suggestion实体上更新将引入'可变更改',这是对Lagom的原则。

for 2)& 3),需要旧状态的深层副本并使用更改的字段进行更新,否则,会引入可变更改'同样。

还有其他选择吗?

由于

1 个答案:

答案 0 :(得分:0)

我们使用像

这样的东西
api/suggestion/:id PUT     // for updating the entire resource
api/suggestion/:id/views   //for updating a portion of the resource

1)服务映射请求命令。该命令可以只包含实体中字段的子集。 2)和3)您需要阅读文档和CQRS设计。该架构最重要的是处理可变状态的高度并发更新