gRPC 与.NET 入门( 三 )
从这个文件中 , 我们可以看到 , 它包含一个Greeter服务和一个SayHello方法 。 我们可以将Greeter服务视为控制器 , 将SayHello方法视为一个动作 。 .proto文件的内容如下所示:
SayHello方法接收一个HelloRequest(这是一个消息)并返回一个HelloReply(这也是一个消息) 。
在GreeterService文件中 , 我们可以看到有一个GreeterService类 , 它继承自Greeter.GreeterBase , 后者是由.proto文件自动生成的 。
在SayHello方法中 , 我们会接收一个请求(HelloRequest)并返回一个响应(HelloReply) 。 它们也是由.proto文件自动为我们生成的 。
代码自动生成会基于.proto文件定义为我们生成所需的文件 。 gRPC在代码生成、路由和序列化方面为我们做了所有繁重的工作 。 我们所需要做的就是实现基类并覆盖方法的实现 。
接下来 , 我们尝试运行gRPC服务:
从自动生成的端点的结果中可以看到 , 我们不能像使用web浏览器作为REST的客户端那样使用gRPC 。 在这种情况下 , 我们需要创建一个gRPC客户端与服务进行通信 。 对于我们的客户端来讲 , gRPC也需要.proto文件 , 因为它是一个契约优先的RPC框架 。 目前 , 我们的web浏览器对客户端(我们并没有.proto文件)一无所知 , 所以它不知道如何处理请求 。
我们创建名为customers.proto的自定义.proto文件 。 这个文件必须要在Protos文件夹中创建 , 它的内容如下所示:
保存完上述文件之后 , 我们需要将它添加到.csproj文件中:
【gRPC 与.NET 入门】现在 , 我们需要构建应用:
- 小米|小米12S系列官宣7月4日正式发布:小米与徕卡联合研发
- 新书推荐 │ 大数据算法设计与分析
- 最前线 | 腾讯游戏发布40余款产品与项目,《王者荣耀》发布全新规划
- 为了证明人类可与黑猩猩结合,女科学家亲身试验,结果怎么样?
- 腾讯游戏发布40余款产品与项目,《王者荣耀》发布全新规划
- 宇宙大爆炸与理解生命起源和进化有什么关联?
- 湖北|巅峰摩擦?i9 12950HX与R9 6900HX专业应用差距有多大?
- FL Studio水果Cubase与Studio one三款编曲混音软件对比
- 与华为联手造车|华为联手造车威力巨大!小康股份涨停:股价创史上新高
- AI与K12的碰撞:科大讯飞推出适龄专属AI翻译笔
