昨天回南部拜訪長輩當日來回,不只網路上當鐵人,現實生活也鐵人啊@@
gRPC可以在各種不同的程式語言裡面實作,主要的method會由套件自動生成,因此我們只要專注在grpc的設定檔(.proto)上面即可。
首先我們新開一個java專案,請在main的底下新增一個名為proto的資料夾,這個資料夾會用來放置我們的.proto設定檔。
這個.proto檔可以協助我們生成所有要使用的request跟response,所有的傳遞內容都設定在這裡,也因此我們其實不用去實作request跟response的通訊method。
一開始我們先新增一個IronMan.proto並打開檔案後寫上
syntax = "proto3";
option java_multiple_files = false;
option java_package="com.iron";
option java_outer_classname = "IronManProto";
syntax=proto3 表示現在使用的proto版本是proto3。
java_package是指定生成檔案的存放路徑,java_outer_claseename的名稱會用來產生method,例如在這邊寫IronManProto,會在生成資料夾內產生一個叫IronManProto的檔案。
同時,我們來繼續新增request跟response的內容:
message IronManRequest01{
string name = 1;
string age = 2;
}
message IronManResponse01{
string result = 1;
string age = 2;
}
這是我們用來組織request跟response的型別,基本結構如下:
型態 變數名稱 = 編號;
在.proto檔中,常見的資料型態如:int32、int64、string、bool...等
這些跟java的基本型別對照可以參考
需要特別注意的是,最後面的數字指的是編號,而且編號從1開始。
最後,我們來新增service method:
service IronManService{
rpc IronMan01(IronManRequest01) returns (IronManResponse01) {}
}
這個就是我們定義在client跟server兩端所要發送跟回傳的參數內容。這邊會產生第二個檔案,也就是IronManServiceGrpc,同樣放置在java_package所指定的路徑資料夾內。
到這邊為止,我們所需要的gRPC各項method都已經準備完成了。
明天,我們就來生成正式的method吧!!