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 入门】现在 , 我们需要构建应用:
- 2月16日|魅族小姐姐晒与魅族18x合影,颜值一如既往的在线
- 操作系统|阿里云宣布与嘉楠科技达成战略合作 将探索龙蜥操作系统等应用
- 绿厂官宣与哈苏达成影像战略合作,新旗舰影像还有多少亮点?
- 虚拟现实|迈赫股份董秘回复:公司有与相关专家合作研发高性能四足仿生机器人,暂未涉及元宇宙技术及VR虚拟现实技术
- Twitter|虚拟现实是身临其境的交互式技术,它是人们与环境交互方式的新里程碑
- 冠军版|小米 Redmi K50 冠军版亮相:与梅赛德斯-AMG F1 车队合作
- Python|《python学习笔记与简明教程》,入门必备!战之必胜
- 披露|凯美特气董秘回复:电子特气产品国内外均有送样认证,且与相关代理商的代销合作工作正加速推进
- 三分天下|OPPO与哈苏达成影像战略合作,这是要和一加形成双影像旗舰吗?
- 华为|2022年屏幕素质“最强”的4款手机,色彩与护眼兼顾,护眼极佳