我正试图了解协议缓冲区。我理解了基本的东西,但现在我正在尝试将以下 javascript 对象定义为 .proto。使用Node.js gRPC 库
const listsSchema = new Schema({
id: { type: String, required: true },
id_str: { type: String, required: true, index: { unique: true } },
name: { type: String, required: true },
description: { type: String, required: true },
slug: { type: String, required: true },
createdAt: { type: Date, 'default': Date.now },
updatedAt: { type: Date, 'default': Date.now },
track: { type: Boolean, 'default': false },
lastTrackedTweet: [
{
id: { type: String, required: true },
id_str: { type: String, required: true },
createdAt: { type: Date, 'default': Date.now },
updatedAt: { type: Date, 'default': Date.now }
}
]
});
这是我想出的,但它被拒绝了。
syntax = "proto3";
package lists;
service Lists {
rpc FindLists (ListRequest) returns (ListReply) {}
}
message ListRequest {
struct params = 1;
}
message ListReply {
repeated struct List = 1;
}
message List {
int64 id = 1;
string id_str = 2;
string name = 3;
string description = 4;
string slug = 5;
Timestamp createdAt = 6;
Timestamp updatedAt = 7;
bool track = 8;
repeated struct LastTrackedTweet = 9;
}
message LastTrackedTweet {
int64 id = 1;
string id_str = 2;
Timestamp createdAt = 3;
Timestamp updatedAt = 4;
}