使用重复字段创建 grpc 客户端请求
Creating grpc client request with repeated fields
我有这样的原型文件:
message StartAssignmentRequest {
string additional_comment = 3;
repeated RideSlip slips = 4;
}
message RideSlip{
string slip_name = 2;
string slip_ext = 3;
string slip_link = 4;
}
现在我想创建它的请求,我正在做这样的事情:
req := &api.StartAssignmentRequest{
AdditionalComment:"AdditionalComment",
Slips: &api.RideSlip[],
}
但不知道如何正确发送 RideSlip 数据。
Protobuffer(2 和 3)repeated
字段在 Go 中是 compiled to slices。
只需append
即可:
req := &api.StartAssignmentRequest{
AdditionalComment: "AdditionalComment",
}
req.Slips = append(req.Slips, &api.RideSlip{
SlipName: "foo",
SlipExt: "bar",
SlipLink: "https://whosebug.com",
})
或者给它分配一个literal值:
req := &api.StartAssignmentRequest{
AdditionalComment: "AdditionalComment",
Slips: []*api.RideSlip{
{
SlipName: "foo",
SlipExt: "bar",
SlipLink: "https://whosebug.com",
},
},
}
我有这样的原型文件:
message StartAssignmentRequest {
string additional_comment = 3;
repeated RideSlip slips = 4;
}
message RideSlip{
string slip_name = 2;
string slip_ext = 3;
string slip_link = 4;
}
现在我想创建它的请求,我正在做这样的事情:
req := &api.StartAssignmentRequest{
AdditionalComment:"AdditionalComment",
Slips: &api.RideSlip[],
}
但不知道如何正确发送 RideSlip 数据。
Protobuffer(2 和 3)repeated
字段在 Go 中是 compiled to slices。
只需append
即可:
req := &api.StartAssignmentRequest{
AdditionalComment: "AdditionalComment",
}
req.Slips = append(req.Slips, &api.RideSlip{
SlipName: "foo",
SlipExt: "bar",
SlipLink: "https://whosebug.com",
})
或者给它分配一个literal值:
req := &api.StartAssignmentRequest{
AdditionalComment: "AdditionalComment",
Slips: []*api.RideSlip{
{
SlipName: "foo",
SlipExt: "bar",
SlipLink: "https://whosebug.com",
},
},
}