【问题标题】:proto3 grpc clients: can they all omit sending message fields?proto3 grpc 客户端:它们都可以省略发送消息字段吗?
【发布时间】:2021-07-15 00:09:05
【问题描述】:

给定以下原型定义 google代码生成生成的所有自动生成的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);
}

【问题讨论】:

    标签: python protocol-buffers grpc proto grpc-python


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-04-08
      • 1970-01-01
      • 2021-04-16
      • 2012-10-04
      • 2019-11-12
      • 2019-04-04
      • 1970-01-01
      • 2020-01-11
      • 1970-01-01
      相关资源
      最近更新 更多