Proto3 表示嵌套 JSON 结构

Proto3 representing nested JSON structure

我想知道如何在我的 gRPC 实现中使用 Node.js 表示可变大小 JSON 结构。我有一个 grpc 服务和一条消息,我想接收以下结构:

{
  "Key": "Value",
  "Nested": { ... }
}

这是我的定义:

syntax = "proto3";

service Users {
  rpc RetrieveMeta (RetrieveMetaRequest) returns (RetrieveMetaResponse) {}
  rpc UpdateMeta   (UpdateMetaRequest)   returns (UpdateMetaResponse)   {}
}
message RetrieveMetaRequest {

}
message RetrieveMetaResponse {

}

我读过你可以通过导入结构定义来做到这一点,但是当我这样做时,我在当前目录中执行查找时收到一个文件未找到错误:

import "google/protobuf/struct.proto";

投掷:

Users/ddibiase-macbook/Projects/dfx-api/node_modules/protobufjs/dist/protobuf.js:4720
                            throw Error("failed to import '"+importFilename+"' in '"+filename+"': file not found");
                            ^

Error: failed to import '/Users/ddibiase-macbook/Projects/dfx-api/protos/struct.proto'

您需要向您的项目源添加一个副本。 Struct.proto 默认情况下不附带 protoc 编译器。

如果您拥有 protobuf 的完整源代码,您可以使用指向 google/protobuf/ 目录的 -I include 指令从您的项目中引用它们。