net core 3.0 之Grpc新特性小试牛刀
光说好处,没有弊端吗,自然是有的
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="Protos\greet.proto" GrpcServices="Client" /> </ItemGroup>
可以看到如下图,重点介绍一下新特性,可以像正常些C#代码一样,直接点出Grpc里定义的方法
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/DanielYao/欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
欢迎大家关注我的微信公众号,新文章会优先发到公众号!
本文来自博客园,作者:打滚的姚先森,转载请注明原文链接:https://www.cnblogs.com/DanielYao/p/11394243.html