通过REST API在Lagom中更新



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

例如,使用REST URI

拥有以下实体

Sugguestion {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)api/suggestion/viewCount with Http Put?

2)api/suggestion/:id with Http Put ?

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

以上三种方法有一些缺点

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

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

还有其他选择吗?

谢谢

我们使用

api/suggestion/:id PUT     // for updating the entire resource
api/suggestion/:id/views   //for updating a portion of the resource

1)服务将请求映射到命令。该命令可以简单地包含实体中字段的子集。2)和3)你需要阅读文档和CQRS设计。该架构主要用于处理对可变状态的高度并发更新

相关内容

  • 没有找到相关文章

最新更新