net core 3.0 之Grpc新特性小試牛刀
- 2019 年 10 月 3 日
- 筆記
光說好處,沒有弊端嗎,自然是有的
https://docs.microsoft.com/zh-cn/aspnet/core/grpc/?view=aspnetcore-3.0
和HttpApi有啥區別,如下圖
現在.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="Protosgreet.proto" GrpcServices="Client" /> </ItemGroup>
可以看到如下圖,重點介紹一下新特性,可以像正常些C#代碼一樣,直接點出Grpc里定義的方法
如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”將是我最大的寫作動力!
本文版權歸作者和博客園共有,來源網址:https://www.cnblogs.com/DanielYao/歡迎各位轉載,但是未經作者本人同意,轉載文章之後必須在文章頁面明顯位置給出作者和原文連接,否則保留追究法律責任的權利。