问题标签 [proto3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在单个表达式中初始化协议缓冲区
我在 .net 中使用协议缓冲区,并使用 protoc 生成 C# 类。例如,让我们从https://developers.google.com/protocol-buffers/docs/proto3获取这个 proto3 文件:
让我们尝试初始化生成的 C# 类。
它们看起来像这样
现在让我们尝试初始化它。理想情况下,我希望能够做这样的事情:
但是,由于集合没有设置器,因此我必须跨多个表达式对其进行初始化:
理想情况下,一个表达式会分布在 5 个表达式和语句的混合体中。
有没有更简洁的方法来初始化我缺少的这些结构?
php - 如何使用 proto3 语法在 protobuf-php 中分配重复的消息?
.proto 文件定义:
我的PHP代码:
实际: $result 没有数据,那么如何分配重复字段?
我尝试像这样使用 RepeatedField 类:
但我不知道如何使用它,所以我使用数组来分配但没有成功
c# - AutoMapper 与 Google Protocol Buffers 3 的务实使用
我想将 AutoMapper 与 proto3 一起使用,但我遇到的最大问题是从可能允许的源属性映射null
到永远不会这样做的原型。手动进行此类填充时,必须执行以下操作:
我仍然觉得这很荒谬,但显然 proto3 就是这样。
无论如何,这意味着映射必须具有条件以确保null
值不会传播到原型:
我能感觉到这很快就变老了,因为我的原型中有很多属性。
我想知道是否有办法让我在更高的抽象层次上处理这个问题?
protocol-buffers - 带有 oneof 或聚合的常见 proto3 字段
我必须为一个大约有 12 种变体的对象生成一个原型类。所有 12 个变体共享四个相同的字段,然后具有特定的字段。在大多数情况下,非特定字段的数量将比公共字段多得多。
我想知道实现这一目标的最有效方法是什么。
第一种选择:在通用原型类中定义通用字段,然后在所有特定类型中声明此类型的字段:
或者最好定义一个包含字段的顶级原型,然后有一个 oneof 字段,它可以引用包含特定字段的另一种类型:
我对表演和惯例特别感兴趣。或者,如果有任何更典型的方式,例如只是重复公共字段。请记住,尽管我的原型只有 4 个公共字段,通常有 3-8 个特定字段。
vector - 是否可以在 protobuf 消息中包含向量字段以生成 Rust 结构?
我有一个用于在项目中生成类型的 protobuf 文件。其中一种类型如下所示:
然后我可以启动一个生成一些 Go 代码的小脚本,protoc-gen-go
稍后通过另一个脚本使用protoc-gen-rust
.
结果是一个 Rust 文件,如下所示:
我不想要一个更好的方法来完全生成 Rust 类型,这个项目很大而且在生产中,我的工作不是重写/重组它,而只是添加一些功能,为此我需要一些漂亮的小标志向量要添加到几个结构中。
我想Vec
在结构中添加一些字段myStruct
,例如:
是否可以使用 proto-buf 来做到这一点?如果是,我该怎么做?
protocol-buffers - 将消息类型更改为类似类型会破坏向后兼容性吗?
我想通过向后兼容性保护我的应用程序免受未来问题的影响。现在我有这个版本test.proto
:
我对将结果消息更改DeleteBar()
为“DeleteBarOut”之类的消息的情况感兴趣:
问题是关于与旧.proto
. 我可以将结果消息的名称从“BoolResult”更改为“DeleteBarOut”吗?
或者我应该保存消息的旧名称并编辑“BoolResult”的字段列表?但是,我怎样才能DeleteFoo()
从这个解决方案中的任何更改中保存?
java - 是否可以检查 proto 文件中的枚举值?
我想验证生成的 Java 代码中的枚举值。我有以下原型文件:
我想在代码中对 Currency 枚举进行一些验证,该代码由生成protobuf
并丢弃错误消息,以防值不适用于提供的枚举(例如:)invalid currency
。可能吗?
protocol-buffers - 在 Proto3 中支持多种模式
我正在创建一个允许传入 jsonObject 中的多个/任意数据的 proto3 模式。我想一次性转换传入的 json 对象。
例如
我还想在不同的请求中支持 key2 的模式 B。
我尝试了几种不同的方法,oneof
但是因为oneof
它需要不同的键名,因为我使用的是相同的key2
,在这种情况下它对我不起作用。
这是架构。
任何人都知道如何实现这一目标?
protocol-buffers - 如何在 ProtoBuf (gRPC) - Proto3 语法中添加消息类型作为对象?
如何在 ProtoBuf - Proto3 语法中将消息类型作为对象发送?
我想传输对象而不是字符串或数字。
例子
在这里,我收到错误
--
解决方法
我可以在服务器端将它转换为字符串,然后我可以在客户端 JSON.parse()。
但我想知道,是否有更好的方法来做到这一点。
c# - 如何在 proto 文件中添加两个具有相同名称的方法
我的原型中有多个具有相同名称和不同参数的方法,当我尝试生成 grpc 时出现错误:
'方法已经定义'