我过去使用过RPC,根据我的经验,每个RPC服务都需要单独的实现。例如,考虑
protos/oplaccount.proto
具有以下服务:
service OplAccountGlobalObjectDefaultService {
rpc Get(OplAccountGlobalObjectDefaultGetRequest) returns (OplAccountGlobalObjectDefaultGetResponse);
rpc List(OplAccountGlobalObjectDefaultListRequest) returns (OplAccountGlobalObjectDefaultListResponse);
}
和
protos/deliveryaccount.proto
具有以下服务
service DelAccountGlobalObjectDefaultService {
rpc Get(DelAccountGlobalObjectDefaultGetRequest) returns (DelAccountGlobalObjectDefaultGetResponse);
rpc List(DelAccountGlobalObjectDefaultListRequest) returns (DelAccountGlobalObjectDefaultListResponse);
}
当我设计实现它的解决方案时,我会在客户端和服务器端为这些服务中的每一个分离impl,即有2个GET impl和2个LIST impl。(每个服务/原型一个)
然而,强烈建议为所有这些不同的proto(类似地,为LIST、Search等)提供一个通用的GET实现,并为每个proto文件提供调用此一次性实现的GET/LIST等的处理程序。
笔记
我们可以假设所有protos文件都将impl。GET或LIST,或者两者都具有相同的签名但req、res-obj不同。
我的问题是:
-
这被认为是围棋的好练习吗?
-
如果是,在GET方法签名相同但请求和响应对象不同的情况下,如何对不同的protos文件执行此操作。每个原型都不同。任何示例代码或链接都将不胜感激。