首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在go模型中包装proto消息

如何在go模型中包装proto消息
EN

Stack Overflow用户
提问于 2019-11-20 17:01:17
回答 1查看 244关注 0票数 0

我目前正在使用protobuf将基于rest api的go服务迁移到gRPC。这是一个巨大的服务,有很多API,而且已经在生产中,所以我不想做太多的改变来破坏现有的系统。

所以我想使用我的go模型作为事实的来源,并生成我认为我可以用这个- Generate proto file from golang struct管理的.proto消息

现在,我的API也根据定义的go模型期望请求和响应,我将更改它们以使用.proto模型进行请求和响应。但是当请求/响应被传递时,我想把它们包装在我的go模型中,然后剩下的代码就不需要任何修改了。

在这种情况下,如果请求很小,我可以简单地复制go模型中的所有字段,但对于大请求或嵌套模型,这是一个大问题。

1)我这样做是正确的吗?

2)不,正确的方法是什么?

3)是的,我如何复制大的proto消息到go模型,反之亦然?

EN

回答 1

Stack Overflow用户

发布于 2019-11-20 20:47:45

如果你想使用go模型作为事实的来源,为什么你想要使用.proto生成的模型作为REST请求/响应呢?是因为您想使用proteus service generation (并在REST和gRPC之间共享代码)吗?

通常,如果您想要从REST迁移到gRPC,最常见的方法可能是使用grpc-gateway (请注意,从1.10.x开始,您可以使用in-process without resorting to the reverse proxy),但这将是"gRPC-first",您从中派生REST,而您似乎想要" REST - first",因为您已经在生产中使用了REST API。事实上,出于这个原因,grpc-gateway可能并不完全合适,因为它可能会生成与现有端点略有不同的端点。这取决于您能在多大程度上打破向后兼容性(也许您可以生成一组"v2“API,并将旧的"v1”保留一段时间,让现有客户端有时间迁移)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58950377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档