找一个支持 http 与 gRPC 协议互转的开源网关,最好是go语言?

新手上路,请多包涵

背景描述

公司内部的业务接口都是使用 gRPC 进行通信,最近接入了一些友商,他们需要调用我们的业务接口,但是他们的系统只支持 http 协议的调用,为了减少代码的侵入性,我们计划引入开源网关来充当中间层,通过网关去转发接口信息,并进行 http 与 gRPC 协议的互转。

需求

1 、支持 HTTP 转 gRPC 协议

2 、可以通过 openAPI 新增 / 删除接口、配置网关转发信息等操作,方便我们其他程序集成

3 、最好是 go 开发,我们可以自行更改代码

阅读 2.2k
2 个回答

你可以考虑使用开源的grpc-gateway来实现这个需求。grpc-gateway是一个用于将RESTful API转换为gRPC的代理服务器,它可以自动生成gRPC服务的反向代理,从而使得gRPC服务可以通过HTTP/1.1协议进行访问。

使用grpc-gateway,你可以通过定义protobuf文件来定义你的gRPC服务和RESTful API,然后使用protoc编译器生成相应的代码。在生成的代码中,你可以找到一个反向代理服务器,它可以将HTTP请求转换为gRPC请求,并将gRPC响应转换为HTTP响应。

grpc-gateway支持多种语言,包括Go、Java、Python等。如果你想使用Go语言开发,可以参考grpc-gateway的官方文档:https://grpc-ecosystem.github.io/grpc-gateway/docs/

另外,如果你想自己开发一个类似的网关,也可以参考grpc-gateway的源代码,它提供了很好的参考。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题