protocol-buffers - 如何在 protobuf 消息中表示 UUID?

标签 protocol-buffers uuid

我想将 UUID 附加到我的 protobuf 用户消息示例中的字段。

message User {
  // field containing id as UUID type
  required string email;
  optional string name;
}

我知道 protobuf 消息还不支持 UUID 类型。我读过最好的方法是使用 UUID 消息类型。

所以我猜我的用户消息会导入我的 UUID 消息原型(prototype)定义并将其用作字段类型,如下所示:
import "myproject/UUID.proto";

message User {
  required UUID id;
  required string email;
  optional string name;
}

我的问题是,UUID 消息的外观如何,我将如何对其进行编码/解码?我的目标是 Java/Scala 和 C# 兼容性。

最佳答案

如果有的话,你想使用 string以避免字节顺序问题。请注意,具有相同字符串表示形式(因此是相同的“id”)的 UUID 和 MS GUID 具有不同的字节流顺序(大端与小端)。如果您使用 bytes在使用 UUID 的 Java 和使用 System.Guid 的 C# 之间进行通信的协议(protocol)中,您最终可能会得到翻转的 ID。

关于protocol-buffers - 如何在 protobuf 消息中表示 UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344826/

相关文章:

java - 用于 Protobuf 编译器的 gRPC Java Codegen 插件

c++ - 常见的 C 模式,但用 C++ 表示?

c++ - uuid_generate_random (libuuid) 在 solaris 上

protocol-buffers - CapnProto 最大文件大小

c++ - 使用反射在 protobuf 消息中设置 oneof

java - Java 中的安全 ID 具有持久性

java - 在 Java 中生成全局唯一标识符

python - 在网页的 URL 中使用 Python UUID 模块生成的值是否安全?

android - 如果在设备而非服务器上生成,UUID4 有多独特?

java - Protocol Buffer 方法定义。传入参数