我是grpc新手,想创建一个REST端点来检查grpc服务器的健康状况。为此,我决定使用grpc网关。
但是,grpc-REST网关文档中的example用于将grpc代理到json,仅针对Golang给出。但我有一个Python的后端,并希望使用Google Cloud Endpoints来制作一个基于gRPC的API,可以transcode incoming REST requests。
我确实在这个stackoverflow answer中找到了一种手动生成注解的方法。但我想知道最好的方法是什么。这是我想生成到类中的sample .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?
3条答案
按热度按时间z4iuyo4d1#
grpc-gateway
是一个生成反向代理的项目,该代理将传入的JSON请求转换为gRPC。为此,它生成Go代码,然后将其编译成反向代理二进制文件。然后,您部署反向代理二进制文件 * 旁边 * 您的预期后端,在您的情况下,它将用Python编写。反向代理所使用的语言应该与后端所使用的语言无关。eoigrqb62#
对于原型生成,请查看我们的gRPC Python快速入门指南。grpc-gateway项目也有一个很好的教程,介绍如何设置gateway进程。
piv4azn73#
下面是我的示例库,介绍了如何运行Python gRPC Server和grpc-gateway代理,将API代码转换为REST。
服务器用Python实现,网关是一个简单的Go代理(只有一个类)。
在这里查看:https://github.com/angelkjos/grpc-gateway-python-example