use*_*634 5 go grpc twirp grpc-gateway grpc-go
我们已经有了Twrip-RPC,它提供了 rpc 和 Rest 端点。那么为什么我们需要 grpc-Gateway。与 twirp 相比,它具有哪些优势。唯一的区别是我们可以通过 grpc 网关提供自定义端点吗?Twrip-rpc 不能做什么 grpc-gateway?
除了二进制 Protobuf 编解码器之外,Twirp 还支持 JSON 编码的请求和响应,同时它仍然表现为 RPC。您可以POST在端点上使用 HTTP(例如/twirp/MyService/SayHello使用 JSON 负载)并接收 JSON 响应。与标准 gRPC 非常相似,除了可选的 JSON 之外。
对于 gRPC 网关来说有点不同。您可以在此处配置现有 gRPC 服务上的任何 HTTP REST 端点。例如,MySevice.SayHello可以映射到GET /hello. 这使得在 gRPC 定义之上实现完整的 REST 服务变得非常容易。
希望这能澄清这一点。