GRpc新增客戶端的五種方式

初夏的陽光丶發表於2020-05-26

隨著微服務的發展,相信越來越多的.net人員也開始接觸GRpc這門技術,大家生成GRpc客戶端的方式也各不相同,今天給大家介紹一下依據Proto檔案生成Rpc客戶端的五種方式

前提:需要安裝4個Nuget包
Google.Protobuf、Grpc、GRpc.Net.ClientFactory、GRpc.Tools
VS安裝命令如下
Install-Package Google.Protobuf
Install-Package Grpc
Install-Package GRpc.Net.ClientFactory
Install-Package GRpc.Tools

準備工作

首先我們新建一個簡單的.net core3.1類庫 命名為:GRpc.Proto 然後新增HelloWord.Proto 新增一個簡單的協議

syntax = "proto3";
import "google/protobuf/timestamp.proto";

option csharp_namespace = "HelloWordDemo";

package HelloWord;

service HelloWord{
   rpc SayHelloWord(SayHelloWordRequest) returns (SayHelloWordResponse);
}

message SayHelloWordRequest{
	string message=1;//傳送訊息
}

message SayHelloWordResponse{
   string message=2;//返回訊息
}

然後給該類庫安裝上述的安裝包(當前類庫只是協議,不需要安裝GRpc.Net.ClientFactory)
截止到現在,我們的準備工作已經做好了,接下來開始進入正題

通過新增服務引用

新增一個名為GRpcClient的控制檯,安裝以上介紹的四個類庫
專案右鍵點選新增-->服務引用
在這裡插入圖片描述
選擇瀏覽找到我們剛剛新增的proto檔案 將選擇要生成的類的型別選"客戶端"
在這裡插入圖片描述
點選確定 第一種就完成了

通過Nuget包新增引用

這種在公司專案中比較推薦使用的(前提是已經有了私有nuget庫)
找到我們剛剛新增的GRpc.Proto專案,右鍵屬性,找到打包,填寫相對應的資訊,一定要勾選在構建會生成Nuget包
在這裡插入圖片描述
重新生成之後就可以在專案debug目錄下看到對應的nuget包了,推送到私有的nuget庫就可以了

直接通過Proto檔案引用

在專案下新建一個檔案Until,將上面的HelloWord.Proto檔案放在新建的檔案下,右鍵點選HelloWord.Proto的屬性
在這裡插入圖片描述
生成操作選擇ProtoBuf conpiler
會出現一個新的屬性:如下
在這裡插入圖片描述
此時我們選擇Client only
客戶端就生成好了

通過url新增引用

專案右鍵點選新增-->服務引用
在這裡插入圖片描述
選擇Url(一定要公網可以訪問,如果是在github上的一定要有如下的操作)
在這裡插入圖片描述
點選Raw
在這裡插入圖片描述
使用這個路徑 才可以成功

通過地址生成Proto檔案引用

這種方式其實和上面一種方式的用法差不多,但是感覺還是需要寫一些。萬一大家哪天需要用到呢
這種方法是通過donnet命令和proto檔案地址生成proto檔案
這裡需要大家配置一個環境變數
在這裡插入圖片描述

命令如下
在PwwerShell獲取VS控制檯執行以下命令

dotnet grpc add-url proto檔案的url(公網可訪問) -o 檔案生成的地址

如果大家有其他的生成需求 可點選 跳轉到具體頁面檢視詳細介紹

這裡面的需要的tools檔案我已上傳到百度網盤,連結會在文末給出,如果大家需要,自行下載

tools檔案下載地址:
連結:https://pan.baidu.com/s/1Vc7FW1w3dX_ZNsbUbh62vQ
提取碼ari6

如有哪裡講得不是很明白或是有錯誤,歡迎指正
如您喜歡的話不妨點個贊收藏一下吧

相關文章