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