閱讀官方 gRPC 介紹,我對如何將簡單的燒瓶路由轉換為 gRPC 服務感到有些困惑。
假設我有一個像這樣的燒瓶路線
@app.route("/hello/<string:name>/")
def hello_name():
return "PLACEHOLDER"
如果我想在 gRPC 中將其定義為服務,那會怎樣?它不接受任何請求資料,而是直接在路徑中請求資料。會直接定義為/hello/<string:name/嗎?我似乎找不到相關的檔案。
uj5u.com熱心網友回復:
在 Flask 中,這些被稱為路由引數。
在 gRPC 轉碼 (!) 中,見下文,您需要name在定義中標識變數:
message HelloRequest {
string name = 1;
}
rpc Hello(HelloRequest) returns (HelloResponse) {
option (google.api.http) = {
get: "/hello/{name}"
};
}
為了向GETHTTP/2 gRPC 服務發出 HTTP/1請求,您需要使用 gRPC HTTP 轉碼。這會在您的 eg Flask 客戶端和 gRPC 服務之間放置一個代理,并將客戶端的 HTTP/1 eg GETs 轉換為 HTTP/2 gRPC 呼叫。這很重要,但它有效。
看:
- 將 HTTP/JSON 轉碼為 gRPC
- Envoy grpc-JSON 轉碼器
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/375935.html
