html
web
光說好處,沒有弊端嗎,天然是有的瀏覽器
網絡
app
框架
https://docs.microsoft.com/zh-cn/aspnet/core/grpc/?view=aspnetcore-3.0工具
和HttpApi有啥區別,以下圖visual-studio
開發工具
如今.NetCore 3.0還處於預覽版,正式版出來相信會有更好的支持和體驗
Grpc在3.0中, 也是遵循微軟一向的風格,對開發者友好,極度溫馨得開發體驗。重大變化的變化
3.0支持編寫好的.proto文件直接. 方法名,就可使用,無需把proto文件生成爲.cs 文件再引用到項目中(微軟默默幫咱們作好了,咱只要定義好protoi接口和參數,關心代碼業務就好了)
我們實際運用起來效果如何,開發用起來爽不爽,咱也不廢話,直接開整
dotnet new grpc
咱們必定會注意到 Startup 類中 ConfigureServices 方法的語句 services.AddGrpc() 。這個是慣例,不用去管,重點看 Configure 方法裏的代碼片斷:
app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGrpcService<GreeterService>(); });
syntax = "proto3"; option csharp_namespace = "GrpcGreeter"; package Greet; service Greeter { // 方法體 rpc SayHello (HelloRequest) returns (HelloReply); //這是咱新增的方法 rpc HelloWorld (HelloRequest) returns (HelloReply); } // 請求參數 message HelloRequest { string name = 1; } // 響應實體 message HelloReply { string message = 1; //數據類型和C#大差不差 int32 code=2; }
Install-Package Grpc.Net.Client -Version 0.1.22-pre3 Install-Package Google.Protobuf Install-Package Grpc.Tools
<ItemGroup> <!-- GrpcServices="Client" 添加該屬性構建相關客戶端類文件(元數據) --> <!-- GrpcServices="Server" 添加該屬性構建相關服務端端類文件(元數據) --> <Protobuf Include="Protos\greet.proto" GrpcServices="Client" /> </ItemGroup>
能夠看到以下圖,重點介紹一下新特性,能夠像正常些C#代碼同樣,直接點出Grpc裏定義的方法
若是您以爲閱讀本文對您有幫助,請點一下「推薦」按鈕,您的「推薦」將是我最大的寫做動力!
本文版權歸做者和博客園共有,來源網址:https://www.cnblogs.com/DanielYao/歡迎各位轉載,可是未經做者本人贊成,轉載文章以後必須在文章頁面明顯位置給出做者和原文鏈接,不然保留追究法律責任的權利。