如何将带有路径参数的烧瓶路由转换为 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 例如GETs 进入 HTTP/2 gRPC 调用。这很重要,但确实有效。

参见: