使用 gRPCurl 除錯.NET 5的gPRC服務

SpringLeee發表於2021-01-19

介紹

你用過 Curl 嗎?這個工具允許你通過 http 來傳送資料,現在有一個適用於gGRPC的工具,gRPCurl,在本文中,我將介紹如何下載安裝這個工具,然後通過這個工具除錯我們.NET 5上面的gGRC程式。

安裝 gRPCurl

gRPCurl 基於GO語言開發,所以,你要安裝GO環境,可以在這裡下載, https://golang.org/doc/install,它的安裝非常簡單,您只需要執行安裝程式就可以了!

安裝完GO環境以後,還需要設定 Windows環境變數,然後使用管理員身份開啟PowerShell,執行下邊兩個命令:

go get github.com/fullstorydev/grpcurl/...
go install github.com/fullstorydev/grpcurl/cmd/grpcurl

如果安裝成功,則可以通過執行以下的命令進行測試:

grpcurl --help

你應該在PowerShell視窗中看到以下內容:

ASP.NET Core gRPC

為了使gRPCurl有效,它需要了解gRPC訊息和端點定義,有兩種方法:反射。我將向您展示如何使用反射,因為這是.NET中最簡單的方法,為了能夠使用Reflection,使用以下命令安裝:

Install-Package Grpc.AspNetCore.Server.Reflection -Version 2.34.0

然後,使用 services.AddGrpcReflection()和 endpoints.MapGrpcReflectionService()方法為ASP.NET Core gRPC應用程式配置, 第一個啟用gRPC的反射,第二個是通過反射向gRPCurl提供示例端點和訊息資訊的端點:

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

grpccurl localhost:5001 list

通過執行以下命令,列出指定gRPC服務的所有可用gRPC端點:

grpccurl localhost:5001 list YourgRPCServiceFullName

通過執行以下命令來呼叫一個獲取列表的端點:

grpcurl localhost:5001 gRPCDemo.v1.CountryService/GetAll

通過執行一下命令,來獲取一個元素,它需要傳入JSON引數:

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/

最後

歡迎掃碼關注我們的公眾號 【全球技術精選】,專注國外優秀部落格的翻譯和開源專案分享,也可以新增QQ群 897216102

使用 gRPCurl 除錯.NET 5的gPRC服務

相關文章