如何在 Apinto 實現 HTTP 與gRPC 的協定轉換 (下)

2023-03-17 18:01:29

上文給大家詳細介紹了在 Apinto 上實現 HTTPgRPC 的協定轉換的基本內容,本篇我們將繼續講解如何在 Apinto-Dashboard 中進行設定。


設定 Apinto

Apinto 上我們提供了視覺化介面工具 Apinto-Dashboard,以降低初學者的使用成本,以下操作均在 Apinto-Dashboard 中進行設定。

1. 在全域性外掛中新建 http_to_grpc 外掛

2. 建立 gRPC 服務

在這裡,我們設定 gRPC服務的相關資訊,我們可以設定多個靜態負載地址,這裡我們填寫了 127.0.0.1:9001

3.建立 http 路由,繫結 grpc_demo 上游服務

4. 在路由中繫結 http_to_grpc 外掛

由於 gRPC 伺服器端範例中,我們開啟了gRPC反射,因此,在設定外掛時,開啟反射按鈕即可

注:

  • 當服務名稱不填時,則預設使用  HTTP 請求路徑的第一個/ 和第二個 / 之間的值作為服務名;

  • 當方法名稱不填時,則預設使用  HTTP 請求路徑的第二個 / 和第三個 / 之間的值作為服務名;
    ·即,若 HTTP 請求路徑上 /Service.Hello/Hello ,則此時服務名稱為 Service.Hello ,方法名稱為 Hello


關於 Protobuf 編碼器

gRPC 未開啟反射,我們需要先新建一個Protobuf 編碼器,繫結 http_to_grpc 外掛時,繫結對應的編碼器 ID 即可,詳細步驟如下:

1. 建立 Protobuf 編碼器

2. 在路由中繫結 http_to_grpc 外掛

填寫完後提交即可。


驗證協定轉換請求

1. 啟動 gRPC 伺服器

2.請求 Service.Hello 服務的 Hello 方法

在上文中,我們定義了 Hello 方法的功能:

  • HelloRequest 中的 name 欄位通過 HelloResponsemsg 欄位封裝成 hello,%s 的結果返回;

  • 將請求的 Header 作為 gRPC 響應的 Trailer 頭部返回。

呼叫結果如下:

歡迎到 GitHub 體驗