gRPCurl 测试 gRPC 服务

  • gRPCurl 是一种命令行工具,可提供与 gRPC 服务的交互。
  • gRPCui 基于 gRPCurl,并为 gRPC 添加了交互式 Web UI,类似于 Postman 和 Swagger UI 等工具。

gRPCurl

gRPCurl 是由 gRPC 社区创建的命令行工具。 其功能包括:

  • 调用 gRPC 服务,包括流式服务。
  • 使用 gRPC 反射进行服务发现。
  • 列出并描述 gRPC 服务。
  • 适用于安全 (TLS) 和不安全(纯文本)服务器。

grpcurl 必须了解服务的 Protobuf 协定,然后才能调用它们。 有两种方法可以实现此目的:

  • 在服务器上设置 gRPC 反射。 gRPCurl 会自动发现服务协定。
  • 在 gRPCurl 的命令行参数中指定 .proto 文件。

 

gRPC ASP.NET Core 包含 Grpc.AspNetCore.Server.Reflection 包,因此具有对 gRPC 反射的内置支持。 在应用中配置反射:

  • 添加 Grpc.AspNetCore.Server.Reflection 包引用。
  • 在 Startup.cs 中注册反射:
    • AddGrpcReflection 用于注册启用反射的服务。
    • MapGrpcReflectionService 用于添加反射服务终结点。
public void ConfigureServices(IServiceCollection services)
{
    services.AddGrpc();
    services.AddGrpcReflection();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();
    
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapGrpcService<GreeterService>();

        if (env.IsDevelopment())
        {
            endpoints.MapGrpcReflectionService();
        }
    });
}

命令行说明

https://docs.microsoft.com/zh-cn/aspnet/core/grpc/test-tools?view=aspnetcore-3.1#use-grpcurl

gRPCui

也是使用 gRPC 反射自动发现 gRPC 服务。

原文地址:https://www.cnblogs.com/yetsen/p/13762526.html