【问题标题】:How to translate a flask route with path parameters to gRPC service?如何将带有路径参数的烧瓶路由转换为 gRPC 服务?
【发布时间】:2021-12-07 19:17:18
【问题描述】:

我对如何将简单的烧瓶路由转换为读取official gRPC introduction 的 gRPC 服务感到有些困惑。

假设我有一个类似的烧瓶路线

@app.route("/hello/<string:name>/")
def hello_name():
    return "PLACEHOLDER"

如果我想在 gRPC 中将其定义为服务,那会怎样?它不接受任何请求数据,而是直接在路径中请求数据。会不会直接定义为/hello/&lt;string:name/?我似乎找不到相关文档。

【问题讨论】:

    标签: python flask grpc


    【解决方案1】:

    在 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 转码。这会在您的 e.g. 之间放置一个代理。 Flask 客户端和 gRPC 服务并转换客户端的 HTTP/1,例如GETs 进入 HTTP/2 gRPC 调用。这不是微不足道的,但它有效。

    见:

    【讨论】:

    • 太棒了,感谢您提供这些额外的信息:]
    • 不客气!
    猜你喜欢
    • 2021-03-22
    • 1970-01-01
    • 2021-10-28
    • 1970-01-01
    • 2017-05-20
    • 2021-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多