2

我是 grpc 菜鸟,想为 grpc 服务器的健康检查创建一个 REST 端点。为此,我决定使用 grpc 网关。

但是,文档中用于将 grpc 代理为 json 的 grpc-REST 网关的示例仅适用于 Golang。但我有一个 python 后端,想使用 Google Cloud Endpoints 制作一个基于 gRPC 的 api,可以对传入的 REST 请求进行转码

我确实在这个 stackoverflow答案中找到了一种手动生成注释的方法。但我想知道最好的方法是什么。这是我要生成到类中的示例 .proto 文件。

 syntax = "proto3";
 package example;
+
+import "google/api/annotations.proto";
+
 message StringMessage {
   string value = 1;
 }

 service YourService {
-  rpc Echo(StringMessage) returns (StringMessage) {}
+  rpc Echo(StringMessage) returns (StringMessage) {
+    option (google.api.http) = {
+      post: "/v1/example/echo"
+      body: "*"
+    };
+  }
 }

如何生成 .proto 文件并使用 python 后端创建 grpc-gateway?

4

2 回答 2

5

grpc-gateway是一个生成反向代理的项目,它将传入的 JSON 请求转换为 gRPC。为此,它会生成 Go 代码,然后将其编译成反向代理二进制文件。然后,您将反向代理二进制文件您的预期后端一起部署,在您的情况下,它将用 Python 编写。编写反向代理的语言应该与编写后端的语言无关。

于 2020-09-30T20:59:23.970 回答
0

对于原型生成,请查看我们的 gRPC Python快速入门指南。grpc-gateway 项目也有一个很好的教程来介绍如何设置网关进程。

于 2020-09-30T17:48:05.817 回答