gRPC入門學習之旅(一)
gRPC入門學習之旅(二)
2.3、建立自定義服務
除上面的模板中自帶的一個gRPC服務之後,我們再建立一個自己的服務,我將建立一個使用者資訊gRPC服務,主要功能有三個,登入、獲取使用者資訊、修改使用者資訊。
- 建立UserInfo.proto協議檔案
- 在“解決方案資源管理器”中,使用滑鼠左鍵選中“Protos”資料夾,然後在選單欄上,依次選擇“新增-->新建項”。如下圖。
- 在“新增新項”對話方塊中,選擇“ASP.NET Core-->常規”節點,然後選擇“協議緩衝區檔案”項。
- 在“名稱”文字框中,輸入 UserInfo.proto,然後選擇“新增”按鈕。如下圖。
4.Visual Studio 2022會在Protos目錄中新增一個UserInfo.proto協議檔案。如下圖。
5.這個UserInfo.proto檔案中的程式碼如下:
syntax = "proto3"; option csharp_namespace = "Demo.GrpcService.Protos"; //包名 package user; //服務名稱 service UserInfo{ //方法名稱 rpc GetUserInfo (UserInfoRequest) returns (UserInfoResult); rpc Login(UserInfoRequest) returns(UserInfoResult); rpc Save(UserInfoRequest) returns (UserInfoResult); } //請求的引數物件 message UserInfoRequest{ string UserName = 1; string Password=2; } //請求響應的物件 message UserInfoResult{ string UserName = 1; string Password=2; int32 Age = 3; string Tel=4; string Name=5; int32 Sex=6; string City=7; bool IsLogin=8; }
- 新增userinfo.proto協議檔案的關聯配置
6.在“解決方案資源管理器”中,使用滑鼠左鍵選中專案名稱“Demo.GrpcService”,然後使用滑鼠雙擊這個名稱,Visual Studio 2022將在文字編輯器中開啟專案檔案。 如下圖。
7. 在文字編輯器中找到ItemGroup節點,在ItemGroup
節點中增加如下配置:如下圖。
<ItemGroup> <Protobuf Include="Protos\greet.proto" GrpcServices="Server" /> <Protobuf Include="Protos\UserInfo.proto" GrpcServices="Server" /> </ItemGroup>
8.在“解決方案資源管理器”中,使用滑鼠左鍵選中專案名稱“Demo.GrpcService”,然後單擊滑鼠右鍵,在彈出的快捷選單中選擇“重新生成”選單項。如下圖。
9.我們開啟“檔案資源管理器”,進入到Demo.Grpc.Service\obj\Debug\net7.0\Protos
目錄,發現此時目錄下比剛才多了2個.cs檔案,就是我們自己定義的UserInfo.proto協議檔案對應的類檔案,如下圖所示: