Answers:
通常,服务在需要访问其数据时会调用其他服务。每个数据段应属于一个特定的服务,它将是访问和修改该数据的唯一入口点。一些服务将很简单,通常与您的域模型紧密对应(例如,用于处理用户的服务),而其他服务将是高级的,并使用来自其他服务的数据(例如,显示照片列表以及有关上传它们的用户的信息) )。
在您的用例中,您应该从外部开始,并考虑要通过API向用户提供哪些操作(如果是后端服务),或者如果是Web应用程序,则应该在GUI中提供哪些操作。请注意,GUI部分通常是带有其自己的控制器的常规应用程序:可以通过REST调用操作(例如在AngularJS中),但是这些端点仅是为GUI应用程序设计的,并非常识上的微服务。
假设您要显示照片以及有关上传者的信息。您可以拥有一个用户服务,该服务返回给定用户ID的有关用户的信息,以及一个可以列出照片的照片服务(例如,通过按某些条件进行搜索)。照片列表将为每张照片包含上传用户的ID。这样,这两种服务就不会耦合-摄影服务仅知道用户ID,而对用户数据本身一无所知。在这两个服务之上,您可以使用第三个服务创建一个服务,例如“列出带有上传者信息的照片”,该服务将调用另外两个服务并将它们返回的数据合并。或者,此操作可以由您的Web应用程序而不是服务执行。
该应用程序主要处理用户,用户拥有的配置文件,照片以及代表照片中一对多配置文件的标签。可以想象有一些方法可以返回用户上传的照片,返回包含特定标记个人资料的照片,等等。
好吧,概要文件服务不应与用户对象一起使用。它可能仅知道被要求为其返回数据的用户的ID,而不再知道。这样,您将不需要用户服务和配置文件服务之间的交互。
如果那不能回答您的问题,请您描述一下您正在处理的确切情况,以澄清问题?