我最近开始在我的 golang 项目中使用 protobuf。我在下面创建了简单的 protobuf 文件。我有三个不同的端点。
GetLink
接受CustomerRequest
作为输入参数并返回CustomerResponse
GetBulkLinks
接受BulkCustomerRequest
作为输入参数并返回BulkCustomerResponse
StreaLinks
接受StreamRequest
作为输入参数并返回CustomerResponse
我想知道是否有任何方法可以改进原始文件下面的内容,因为除了字段CustomerRequest
之外BulkCustomerRequest
几乎所有内容都相同resources
,因此存在重复。输入参数也是如此,StreamRequest
因为它只clientId
作为输入参数。协议缓冲区中有什么可以重用其他消息类型的东西吗?
有没有更好或更有效的方法来组织下面的原始文件,从而相应地重用消息?
syntax = "proto3";
option go_package = "github.com/david/customerclient/gen/go/data/v1";
package data.v1;
service CustomerService {
rpc GetLink(CustomerRequest) returns (CustomerResponse) {};
rpc GetBulkLinks(BulkCustomerRequest) returns (BulkCustomerResponse) {};
rpc StreaLinks(StreamRequest) returns (CustomerResponse) {};
}
message CustomerRequest {
int32 clientId = 1;
string resources = 2;
bool isProcess = 3;
}
message BulkCustomerRequest {
int32 clientId = 1;
repeated string resources = 2;
bool isProcess = 3;
}
message StreamRequest {
int32 clientId = 1;
}
message CustomerResponse {
string value = 1;
string info = 2;
string baseInfo = 3;
string link = 4;
}
message BulkCustomerResponse {
map<string, CustomerResponse> customerResponse = 1;
}
蝴蝶刀刀
相关分类