在基于REST的微服务架构中,在单个实体下对相关数据进行分组的正确方法是什么。例如,我们可能有一个负责管理用户的用户服务。此外,我们可能有一项服务负责管理为每个用户存储的某种数据(我们假设我们正在讨论用户的项目/库存)
我们可以将库存管理服务分开并用它来为任何事物创建库存,所以我理想情况下不希望库存管理系统要求用户运行。
是否有一个典型的模式可以提供我正在寻找的分组(多个库存项目给单个所有者)?其余端点看起来会支持这样的架构?
答案 0 :(得分:2)
我认为没有任何典型的模式。这取决于您的业务流程和实体之间的关系。但是有一些一般性的陈述。
您可以针对您的解决方案正式检查大部分断言。
此外,它总是可以将一些服务分成两个新服务。但是,在分析阶段你做出的努力越多,你需要一次分割服务的可能性就越小。
答案 1 :(得分:1)
"服务"行为通常转换为工厂模式实现,无论语义如何。
Api Side:
POST: yourapi.com/v1/inventory/add/
DATA: {
userid: 1,
products: [
'Canned Chicken Gizzards',
'Snake Oil Extract',
'Evaporated Water'
]
}
工厂类方:
InventoryFactory->addProduct((object) product)
-- also have a method to add products under a user --
InventoryFactory->addProducts((array) products, userid)