那我們前一篇已經跟大家介紹了如何開發一個 gRPC 的服務,今天就來跟大家介紹如何啟動我們的服務和測試我們的 api!
terminal
下執行下面指令:make
小複習:因為我們把
all: server client
寫在 Makefile 的最上方,所以他預設就是執行這個腳本。
然後就會發現他會在我們專案中生成 ./bin/
目錄,裡面放著 client
和 server
的建置檔。
make run-server
出現下面內容就表示有成功
go build -o bin/server ./cmd
./bin/server -mode=server
2024/10/03 22:21:00 gRPC server listening on :50051
因為我們有撰寫 client 端,所以我們可以直接在 terminal
下查看回應:
(小提示:記得開一個新的 terminal )
make run-client
go build -o bin/client ./cmd
./bin/client -mode=client -name=BeeChat
2024/10/03 21:12:55 Greeting: Hello, BeeChat!
我們從左上方的 New 去選取我們要創建的項目
我們選擇 gRPC 服務
然後我們在中間選擇 Service definition
-> Import a .proto file
-> Choose a File
來去選取我們專案下的.proto 檔案。
然後很貼心的,我們可以透過 Import as API
來自動導入我們實現的所有 api 接口。
接著從 Select a method
選擇我們寫好的 SayHello
api,然後在 Message
下選擇 Use Example Message
來快速的幫我們建置好一個回覆範例。
接著我們輸入剛剛啟好的本地端的50051連接埠後就能查看輸出格式。
我們先從左上角回到主窗口
後,選擇新建項目
然後選擇我們的 gRPC 服務後,隨便輸入一個名稱後我們就建立它
從彈出窗口中,我們選擇專案下的.proto
檔案,後按添加
從左方的接口
-> 根目錄
-> 選擇我們寫好的 api ,然後一樣很方便的我們可以使用自動生成
接著我們一樣輸入本地端的50051連接埠後就能查看輸出格式。
那我要來偷偷吹捧一下 Apifox ,回答為什麼我每個測試環節都要加上 Apifox 的部分。
path
要帶什麼,Headers
要用什麼方式包裝,body
有哪些參數以及要帶入什麼內容都有範例可以看,真的比看官方那又臭又長的文檔快很多,而且如果某間公司推出新的 API 他也會更新資訊,所以蠻不錯的。.proto
檔案一樣,自動生成所有 API 格式,這功能真的超方便的(不知道 GoLand 能不能也開發一下這個插件)那就如我前面篇幅所說的 gRPC 的預設傳輸層是基於 HTTP/2,那如果你想要開發的是 HTTP/3 的話,可以去研究看看,像是在 Curl 8.9.0 的版本更新中對 QUIC 和 HTTP/3 提供支援,那如果有這方面需求的,可以去試試看研究 QUIC [📎GO - QUIC Github倉庫]