- 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 服务。