我是 golang 和 grpc 的新手,需要指导和说明。我将以下定义作为参数来调用外部 API 的 POST 请求。 params := map[string]string{ "movie": movie, "seat": seat, "pax": fmt.Sprint(pax), "class": class,}在原型文件中,我有以下内容:message TicketData { string movie= 1; string seat= 2; uint32 pax= 3; string class = 4;}message SearchMovieRequest { TicketData data= 1;}但是在 POSTMAN(grpc 请求)中,正文请求显示如下:{ "data": { "movie": "abc", "seat": "123", "pax": 2, "class ": "b"" } }请求正文应如下:{ "data": **[** { "movie": "abc", "seat": "123", "pax": 2, "class ": "b"" } **]** - missing brackets in my json body}我试过使用 structpb 和映射字符串接口。它似乎不起作用。任何指针将不胜感激。谢谢你。
1 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
您希望该data字段为repeated TicketData.
请参阅Protobuf语言指南 (proto3)中的指定字段规则。
具体来说:
message TicketData {
string movie= 1;
string seat= 2;
uint32 pax= 3;
string class = 4;
}
message SearchMovieRequest {
repeated TicketData data= 1;
}
注意虽然您包含了 protobuf 定义,但您的示例是 JSON。Protobuf 实现通常包括 protobuf 和 JSON 之间的自动映射——我假设——你正在展示的是什么。
- 1 回答
- 0 关注
- 84 浏览
添加回答
举报
0/150
提交
取消