grpc 如何将model数据转换为proto生成的结构体返回?
刚开始学习grpc 遇到问题请教下
model:
type User struct {
Id int64 `json:"id"`
Nickname string `json:"nickname"`
}
func Users()[]*User {
var rows []*User
db.Find(&rows)
return rows
}
proto
type User struct {
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
response
type UserResponse struct {
Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
Data []*User `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
userServer
func (c *userServer) Users(ctx context.Context, request *pb.UserRequest, response *pb.UserResponse) error {
users := model.Users()
// 这里要将[]*model.User 返回 但是pb生成的是[]*pb.User
// 请问要如何解决呢?
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这个是不同的对象,只能像一楼遍历重新赋值
楼上需要赋值+1,如果struct field 比较多。可以使用https://github.com/jinzhu/copier。 不用再手动写一遍了。