前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >使用 gRPCurl 调试.NET 5的gPRC服务

使用 gRPCurl 调试.NET 5的gPRC服务

作者头像
全球技术精选
发布于 2021-01-21 06:56:56
发布于 2021-01-21 06:56:56
83400
代码可运行
举报
文章被收录于专栏:全球技术精选全球技术精选
运行总次数:0
代码可运行

介绍

你用过 Curl 吗?这个工具允许你通过 http 来发送数据,现在有一个适用于gGRPC的工具,gRPCurl,在本文中,我将介绍如何下载安装这个工具,然后通过这个工具调试我们.NET 5上面的gGRC程序。

安装 gRPCurl

gRPCurl 基于GO语言开发,所以,你要安装GO环境,可以在这里下载, https://golang.org/doc/install,它的安装非常简单,您只需要运行安装程序就可以了!

安装完GO环境以后,还需要设置 Windows环境变量,然后使用管理员身份打开PowerShell,运行下边两个命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go get github.com/fullstorydev/grpcurl/...
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go install github.com/fullstorydev/grpcurl/cmd/grpcurl

如果安装成功,则可以通过运行以下的命令进行测试:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grpcurl --help

你应该在PowerShell窗口中看到以下内容:

ASP.NET Core gRPC

为了使gRPCurl有效,它需要了解gRPC消息和端点定义,有两种方法:反射。我将向您展示如何使用反射,因为这是.NET中最简单的方法,为了能够使用Reflection,使用以下命令安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Install-Package Grpc.AspNetCore.Server.Reflection -Version 2.34.0

然后,使用 services.AddGrpcReflection()和 endpoints.MapGrpcReflectionService()方法为ASP.NET Core gRPC应用程序配置, 第一个启用gRPC的反射,第二个是通过反射向gRPCurl提供示例端点和消息信息的端点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using CountryService.Web.Services;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;


namespace CountryService.Web
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddGrpc();
            services.AddGrpcReflection();
            services.AddSingleton<CountryManagementService>();
        }

        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGrpcService<CountryGrpcService>();

                endpoints.MapGrpcReflectionService();
            });
        }
    }
}

使用 gRPCurl

通过运行以下命令列出所有可用的gRPC服务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grpccurl localhost:5001 list

通过运行以下命令,列出指定gRPC服务的所有可用gRPC端点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grpccurl localhost:5001 list YourgRPCServiceFullName

通过运行以下命令来调用一个获取列表的端点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grpcurl localhost:5001 gRPCDemo.v1.CountryService/GetAll

通过运行一下命令,来获取一个元素,它需要传入JSON参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grpcurl localhost:5001 -d 'JSON字符串' gRPCDemo.v1.CountryService/Get

总结

这是gRPCurl的简单教程, gRPCurl具有很多功能,如果您想了解更多信息, 我建议你可以在这里找到更多的api,https://github.com/fullstorydev/grpcurl

原文作者: Anthony Giretti 原文链接:https://anthonygiretti.com/2021/01/13/grpc-asp-net-core-5-test-grpc-endpoints-with-grpcurl/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 半栈程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
宝藏好物gRPCurl
gRPCurl简介 gRPCurl[1]是一个与gRPC服务器交互的命令行工具,可认为是gRPC的curl工具。
有态度的马甲
2021/11/25
7850
宝藏好物gRPCurl
使用 gRPC-UI 调试.NET 5的gPRC服务
在上一篇文章中,我介绍了gRPCurl一个命令行工具,该工具可用于测试gRPC服务的端点,在本文中,我将向您介绍 gRPC-ui, 它可以作为Web工具使用,有点像Postman,但用于gRPC API而不是REST。
全球技术精选
2021/01/21
9860
使用 gRPC-UI 调试.NET 5的gPRC服务
工作中你会使用到 grpcurl 吗?
导入咱们的 tenant.proto 文件后,可以看到咱们服务端提供的如下两个接口:
阿兵云原生
2023/09/12
3290
工作中你会使用到 grpcurl 吗?
ASP.NET Core 3.0 使用gRPC
gRPC 是一个由Google开源的,跨语言的,高性能的远程过程调用(RPC)框架。 gRPC使客户端和服务端应用程序可以透明地进行通信,并简化了连接系统的构建。它使用HTTP/2作为通信协议,使用 Protocol Buffers 作为序列化协议。
晓晨
2019/09/25
2.2K0
ASP.NET Core 3.0 使用gRPC
ASP.NET Core gRPC 使用 Consul 服务注册发现
gRPC 在当前最常见的应用就是在微服务场景中,所以不可避免的会有服务注册与发现问题,我们使用gRPC实现的服务可以使用 Consul 或者 etcd 作为服务注册与发现中心,本文主要介绍Consul。
晓晨
2019/11/29
1.8K0
从壹开始学习NetCore 44 ║ 最全的 netcore 3.0 升级实战方案
缘起 1、哈喽大家中秋节(后)好呀!感觉已经好久没有写文章了,但是也没有偷懒哟,我的视频教程《系列一、NetCore 视频教程(Blog.Core)》也已经录制八期了,还在每周末同步更新中,欢迎大家多多指教。 2、除此之外呢,我也在平时的时间帮朋友开发了一个小项目,就是使用 .net mvc+vue+ele+mongo 框架写的项目,之前一直想着用mvc结合着vue写,这次也终于上手了,不过是一个小的demo,因为是朋友的项目,所以就不开源了。 言归正传,👉 从2018年8月就开始听说 netcore 要
老张的哲学
2022/04/10
8760
从壹开始学习NetCore 44 ║ 最全的 netcore 3.0 升级实战方案
Prometheus采集ASP.NET Core指标信息
https://github.com/yoyofx/dotnet-metric-prometheus
yoyofx
2023/05/26
9850
一个新实验:使用gRPC-Web从浏览器调用.NET gRPC服务
无法在浏览器中实现gRPC HTTP / 2规范,因为没有浏览器API能够对HTTP请求进行足够的细粒度控制。gRPC-Web通过与HTTP / 1.1和HTTP / 2进行兼容来解决此问题。
依乐祝
2020/02/19
1.6K0
踩坑 Windows 服务来宿主 .NET 程序
本文所指的 .NET 程序为 .NET6 的程序。因为 .NET 的版本更新很快,所以方式、方法也有变化,所以网上搜到的方法有些也过时了。以下是最近我实践下来的一点心得(坑)。 上一篇说到 不安装运行时运行 .NET 程序 后我们的程序已经只有一个 dll/exe 了,但是在 windows 上运行的时候会是一个控制台程序,很容易人不小心关闭了。所以想着把我们的程序部署成 windows 服务,这样不会误关,重启服务器的时候也会自动启动。所以最近折腾了一下把 .NET 程序,特别是 ASP.NET Core 程序部署为 windows 服务。本来以为网上随便搜一搜就很容易,事实上没想得这么美好。
MJ.Zhou
2022/09/28
8052
踩坑 Windows 服务来宿主 .NET 程序
通过几个Hello World感受.NET Core全新的开发体验
2016年6月27日,这是一个特殊的日子,微软全新的.NET开发平台.NET Core的RTM版本正式发布。我个人将.NET Core的核心特性归结为三点,它们的首字母组成一个非常好记的简称——COM,分别代表的含义Cross-Platform、Open-Source和Modularization。开发.NET Core应用的方式与之前具有非常大的变化,对于那些尚未体验过.NET Core的朋友,我希望通过本篇文章创建的这j几个Hello World应用可以很容易地带你们快速入门。 首先我们会介绍如何构建.
蒋金楠
2018/01/15
1.1K0
通过几个Hello World感受.NET Core全新的开发体验
几种gRPC调试工具
完整代码:github.com/cuishuang/grpcdemo[2], 此处仅需要使用gRPC Server,不需要Client部分
fliter
2023/09/09
6790
几种gRPC调试工具
.NET CORE 构建 gRPC 服务
gRPC 使用协定优先方法进行 API 开发。 在 .proto 文件中定义服务和消息
全栈研发知识库
2024/12/24
680
基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务
本文首发于 码友网 -- 《基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务》
Rector
2020/10/10
1.5K0
基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务
【gRPC】 在.Net core中使用gRPC
最近在学习.net core的微服务体系架构。微服务之间的通信常常通过gRPC进行同步通信,但是需要注意的是,大多数微服务之间的通信是通过事件总线进行异步通信。在微软介绍.net微服务体系架构的项目eShop中,微服务之间进行同步通信的场景很多,大多数都是HTTP/REST,目前只有自定义聚合器与微服务之间通信是使用的gRPC。整套微服务架构体系,其实除了客户端与网关(BFF)之间,使用HTTP/REST,均可使用gRPC(只要网关支持HTTP/REST与gRPC的转换)
DDGarfield
2022/06/23
8240
【gRPC】 在.Net core中使用gRPC
使用 grpcurl 通过命令行访问 gRPC 服务
一般情况下测试 gRPC 服务,都是通过客户端来直接请求服务端。如果客户端还没准备好的话,也可以使用 BloomRPC 这样的 GUI 客户端。
AlwaysBeta
2021/09/30
3.7K1
ASP.NET Core 3.0 gRPC 身份认证和授权
本文算是对于 ASP.NET Core 3.0 gRPC 研究性学习的最后一篇了,以后在实际使用中,可能会发一些经验之文。本文主要讲 ASP.NET Core 本身的认证授权和gRPC接入,认证方式采用目前主流的 JWT 结合 IdentityServer4。
晓晨
2019/11/21
1.1K0
.NET 8 中的调试增强功能
开发人员喜欢 .NET 强大且用户友好的调试体验。您可以在您选择的 IDE 中设置断点,启动已经附加上调试器的程序,逐步执行代码并查看 .NET 应用程序的状态。
郑子铭
2023/10/23
2060
.NET 8 中的调试增强功能
你知道吗?从 .NET9 开始删除内置的 Swagger 支持 (Swashbuckle)!
.NET 9 中使用 Scalar 替代内置的 Swagger 支持 (Swashbuckle)
郑子铭
2024/11/23
2010
你知道吗?从 .NET9 开始删除内置的 Swagger 支持 (Swashbuckle)!
gRPC调试工具推荐
在介绍工具之前先说一个情况,就是你用某个工具调试时,会发现,有的项目无需手动导入.proto文件,工具就能列出所有method,有些则不行。这是因为项目注册了反射,先看下怎么注册反射
崔哥
2022/11/06
1K1
gRPC调试工具推荐
.NET 6 中 gRPC 的新功能
gRPC是一个现代的、跨平台的、高性能的 RPC 框架。gRPC for .NET 构建在 ASP.NET Core 之上,是我们推荐的在 .NET 中构建 RPC 服务的方法。
全球技术精选
2021/12/11
1.1K0
.NET 6 中 gRPC 的新功能
相关推荐
宝藏好物gRPCurl
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文