如何将带有路径参数的烧瓶路由转换为 gRPC 服务?
How to translate a flask route with path parameters to gRPC service?
我对简单的 flask 路由如何转换为读取 official gRPC introduction 的 gRPC 服务感到有点困惑。
假设我有一个像
这样的烧瓶路线
@app.route("/hello/<string:name>/")
def hello_name():
return "PLACEHOLDER"
如果我想在 gRPC 中将其定义为服务,那看起来会怎样?它不接受任何请求数据,而是直接在路径中请求数据。会不会直接定义成/hello/<string:name/
?我似乎找不到相关文档。
在 Flask 中,这些称为路由参数。
在 gRPC 转码 (!) 中,请参见下文,您需要在定义中识别变量 name
:
message HelloRequest {
string name = 1;
}
rpc Hello(HelloRequest) returns (HelloResponse) {
option (google.api.http) = {
get: "/hello/{name}"
};
}
为了制作 HTTP/1 例如GET
请求 HTTP/2 gRPC 服务,您需要使用 gRPC HTTP 转码。这在您的例如之间放置了一个代理。 Flask 客户端和 gRPC 服务并转换客户端的 HTTP/1 例如GET
s 进入 HTTP/2 gRPC 调用。这很重要,但确实有效。
参见:
我对简单的 flask 路由如何转换为读取 official gRPC introduction 的 gRPC 服务感到有点困惑。
假设我有一个像
这样的烧瓶路线@app.route("/hello/<string:name>/")
def hello_name():
return "PLACEHOLDER"
如果我想在 gRPC 中将其定义为服务,那看起来会怎样?它不接受任何请求数据,而是直接在路径中请求数据。会不会直接定义成/hello/<string:name/
?我似乎找不到相关文档。
在 Flask 中,这些称为路由参数。
在 gRPC 转码 (!) 中,请参见下文,您需要在定义中识别变量 name
:
message HelloRequest {
string name = 1;
}
rpc Hello(HelloRequest) returns (HelloResponse) {
option (google.api.http) = {
get: "/hello/{name}"
};
}
为了制作 HTTP/1 例如GET
请求 HTTP/2 gRPC 服务,您需要使用 gRPC HTTP 转码。这在您的例如之间放置了一个代理。 Flask 客户端和 gRPC 服务并转换客户端的 HTTP/1 例如GET
s 进入 HTTP/2 gRPC 调用。这很重要,但确实有效。
参见: