在基于 REST 的微服务架构中,将相关数据分组到单个实体下的正确方法是什么。例如,我们可能有一个用户服务负责管理用户。此外,我们可能有一个服务负责管理为每个用户存储的某种数据(让我们假设在这个例子中,我们正在谈论用户的物品/库存)
我们可以分离库存管理服务并使用它来为任何东西创建库存,所以我不希望库存管理系统需要用户才能运行。
是否有一个典型的模式可以提供我正在寻找的分组(多个库存项目给一个所有者)?支持这种架构的其他端点会是什么样子?
在基于 REST 的微服务架构中,将相关数据分组到单个实体下的正确方法是什么。例如,我们可能有一个用户服务负责管理用户。此外,我们可能有一个服务负责管理为每个用户存储的某种数据(让我们假设在这个例子中,我们正在谈论用户的物品/库存)
我们可以分离库存管理服务并使用它来为任何东西创建库存,所以我不希望库存管理系统需要用户才能运行。
是否有一个典型的模式可以提供我正在寻找的分组(多个库存项目给一个所有者)?支持这种架构的其他端点会是什么样子?
我认为没有任何典型的模式。这取决于您的业务流程和实体之间的关系。但是有一些一般性的说法。
您可以根据您的解决方案正式检查大多数这些断言。
此外,总是可以将某些服务拆分为两个新服务。但是,您在分析阶段付出的努力越多,您需要拆分服务的可能性就越小。
无论语义如何,“服务”行为通常都会转化为工厂模式实现。
Api 方面:
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)