我已经构建了一个API,其中包含一个API网关和两个微服务。 这两个微服务分别是“产品”和“类别”。
API调用可以执行以下操作:
/v1/account/getAccount // gets all accounts
/v1/account/getAccount/44 // gets account 44
/v1/categories/getCategory // gets all categories
/v1/categories/getCategory/24 // gets category 24
帐户可以是类别。获取所有具有相应类别的帐户的最佳方法是什么。
谢谢
答案 0 :(得分:3)
简短的回答:4-其他方式。
您遇到的问题是您设计微服务的直接结果。通常(这当然取决于用例),让服务成为针对不同实体的“ CRUD”服务而没有任何业务逻辑,这是一个坏主意。
为什么这是个坏主意?出于相同的原因,在整体中执行相同的操作是一个坏主意。它创建了依赖关系,使微服务彼此依赖,最终导致了一个解决方案,在两个方面都表现最差(微服务和整体式)。
您获得所有类别的所有客户的要求进一步加强了这一点。如果以正确的方式设计服务,则无需从服务中提取完整的数据集。
正确的方法:围绕业务功能而不是数据设计服务。如果客户和类别都需要功能,那么它们实际上应该在一起,并形成具有适当功能的“微服务”(您实际上没有提到任何功能)。
尝试分离数据的不同方面以形成不同的功能,即使这意味着某些数据可能是多余的。