proto3grpc客户端:它们都可以省略发送消息字段吗



给定以下原型定义谷歌代码生成生成的所有自动生成的grpc客户端都可以省略PagingInfo中的发送字段吗?

在python客户端中,我可以使用以下代码来省略发送该字段:

request = SearchRequest(paging_info=dict(a=OptionalField(d='d', e='e')), query='blah') 

grpc原型定义:

syntax = "proto3";
message OptionalField {
string d = 1;
string e = 2;
}
message PagingInfo {
OptionalField a = 1;
OptionalField b = 2;
OptionalField c = 3;
}
message SearchRequest {
string query = 1;
PagingInfo paging_info = 2;
}
message SearchResponse {
string a = 1;
}
service SearchService {
rpc Search (SearchRequest) returns (SearchResponse);
}

在proto3中,所有元素都被认为是optional(在proto2的意义上(,所以是的:任何兼容的实现都应该能够发送省略该元素的消息。

最新更新