【问题标题】:Protobuf 3 optional vs FieldMasksProtobuf 3 可选与 FieldMasks
【发布时间】:2023-01-19 04:47:18
【问题描述】:

现在 protocol buffers 3 有 support for optional fields 可以让你测试该字段是否已设置,FieldMasks 仍然有用吗?

例如,在允许客户端仅更新它们传递的字段的 gRPC 中实现 Update 方法时,该方法应该采用带有可选字段或 FieldMask 的消息吗?这是个人喜好的问题吗?还是其中之一有好处?

我们还希望使用带有 grpc_json_transcoder 过滤器的 grpc-gateway 或 envoy 将 gRPC API 公开为 JSON/HTTP API。这些对任何一种模式都有偏好吗?

【问题讨论】:

    标签: protocol-buffers grpc envoyproxy grpc-gateway


    【解决方案1】:

    经过多次试验和错误后,我得出的结论是,如果您的资源具有重复字段或映射字段,则仍然需要 FieldMasks。这些不能标记为可选,也无法检查是否存在。因此,在这些情况下,您需要一个 FieldMask,并且为了在您的更新请求中保持一致,您也可以在任何地方使用 FieldMask。

    FieldMasks 还允许您使用现有的协议缓冲区消息类型,而无需将字段标记为可选。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-26
      • 2022-08-10
      • 1970-01-01
      • 2017-04-22
      • 1970-01-01
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      相关资源
      最近更新 更多