上文給大家詳細介紹了在 Apinto 上實現 HTTP
與 gRPC
的協議轉換的基本內容,本篇我們將繼續講解如何在 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
欄位透過HelloResponse
的msg
欄位封裝成hello,%s
的結果返回; -
將請求的 Header 作為 gRPC 響應的 Trailer 頭部返回。
呼叫結果如下:
歡迎到 GitHub 體驗 ?:https://github.com/eolinker/apinto
寫在最後
目前 Apinto 及其周邊專案已經開源,我們希望透過 Apinto 強大的外掛擴充能力,使用者可像樂高積木一樣根據需要自行擴充 Apinto 的外掛,以滿足不同的業務市場需求。
Apinto 目前屬於萌芽階段,我們希望集合廣大開源愛好者的力量,與大家一起討論方案,接受大家的批評指正,一起將產品打磨完善,做下一個端與端間的 Traffic Middleware。
這是一個開放和積極的專案,我們誠摯地邀請您一起參與到我們的專案開源工作中。 每一個貢獻都是有意義的,包括但不限於:
- 查詢 bugs,取得效能上的提升
- 幫助完善文件,提供使用者操作體驗
- 提交你們的 issue,讓我們知道您的奇思妙想
- 參與自定義外掛的開發,豐富 apinto 的能力
歡迎各位開源愛好者參與到 Apinto 專案中,和我們一起為開源事業貢獻自己的力量!
我們希望得到您的關注~
? Github : https://github.com/eolinker/apinto