有三种微服务:
作者
它具有SELECT和CRUD实体"作者"
图书
它具有SELECT和CRUD实体的能力" book"
移动应用主机
专门为移动客户端构建,以响应所请求的完整数据模型,以便移动应用程序不会“丰富”。数据结束。
示例:API' MobileHost.getAllBooksOfGivenAuthor'将通过调用' Authors.getAuthorData(authorId)'来回复作者姓名和书名。并将其数据与' Books.getBooksByAuthorIds(authorId)'产生这样的结构:
{
"author" : {
"name" : "Winner",
"id" : 1
},
"books" : [
{
"name" : "Book A",
"id" : "13231231"
}
]
}
我的问题是:
如果移动客户端通过"移动应用主机"应该做什么"添加作者"通过"移动应用主机"也可以联系"作者"直接服务?在这种情况下是否应该代理CRUD?
答案 0 :(得分:0)
这取决于你的目标。
根据我的经验,这种“主机”或“代理”服务往往越来越大,没有任何实际责任。将许多类,功能和责任结合在一个地方绝对是一个坏主意 - 随着时间的推移很难维持这样的服务。
此外,如果仅需要扩展作者服务,那么扩展此类服务的实例可能非常困难并且资源无效。因此,如果您要分别扩展不同的服务和活动,那么,当然,您不需要仅使用一个服务来代理请求。例如,您可以使用多个代理服务来单独扩展它们,或者直接调用Authors服务并将其扩展而不是代理服务器。
但是,如果你没有看到提到的机会,那么尽可能保持简单 - 当它需要时,你总是可以将服务和代理分开,只需将所有内容分开