使用 gRPCurl 调试.NET 5的gPRC服务
介紹
你用過(guò)?Curl?嗎?這個(gè)工具允許你通過(guò) http 來(lái)發(fā)送數(shù)據(jù),現(xiàn)在有一個(gè)適用于gGRPC的工具,gRPCurl,在本文中,我將介紹如何下載安裝這個(gè)工具,然后通過(guò)這個(gè)工具調(diào)試我們.NET 5上面的gGRC程序。
安裝 gRPCurl
gRPCurl 基于GO語(yǔ)言開(kāi)發(fā),所以,你要安裝GO環(huán)境,可以在這里下載, https://golang.org/doc/install,它的安裝非常簡(jiǎn)單,您只需要運(yùn)行安裝程序就可以了!
安裝完GO環(huán)境以后,還需要設(shè)置 Windows環(huán)境變量,然后使用管理員身份打開(kāi)PowerShell,運(yùn)行下邊兩個(gè)命令:
go get github.com/fullstorydev/grpcurl/... go install github.com/fullstorydev/grpcurl/cmd/grpcurl如果安裝成功,則可以通過(guò)運(yùn)行以下的命令進(jìn)行測(cè)試:
grpcurl --help你應(yīng)該在PowerShell窗口中看到以下內(nèi)容:
ASP.NET Core gRPC
為了使gRPCurl有效,它需要了解gRPC消息和端點(diǎn)定義,有兩種方法:反射。我將向您展示如何使用反射,因?yàn)檫@是.NET中最簡(jiǎn)單的方法,為了能夠使用Reflection,使用以下命令安裝:
Install-Package Grpc.AspNetCore.Server.Reflection -Version 2.34.0然后,使用 services.AddGrpcReflection()和 endpoints.MapGrpcReflectionService()方法為ASP.NET Core gRPC應(yīng)用程序配置, 第一個(gè)啟用gRPC的反射,第二個(gè)是通過(guò)反射向gRPCurl提供示例端點(diǎn)和消息信息的端點(diǎn):
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
通過(guò)運(yùn)行以下命令列出所有可用的gRPC服務(wù):
grpccurl localhost:5001 list通過(guò)運(yùn)行以下命令,列出指定gRPC服務(wù)的所有可用gRPC端點(diǎn):
grpccurl localhost:5001 list YourgRPCServiceFullName通過(guò)運(yùn)行以下命令來(lái)調(diào)用一個(gè)獲取列表的端點(diǎn):
grpcurl localhost:5001 gRPCDemo.v1.CountryService/GetAll通過(guò)運(yùn)行一下命令,來(lái)獲取一個(gè)元素,它需要傳入JSON參數(shù):
grpcurl localhost:5001 -d 'JSON字符串' gRPCDemo.v1.CountryService/Get總結(jié)
這是gRPCurl的簡(jiǎn)單教程, 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/
最后
歡迎掃碼關(guān)注我們的公眾號(hào) 【全球技術(shù)精選】,專注國(guó)外優(yōu)秀博客的翻譯和開(kāi)源項(xiàng)目分享,也可以添加QQ群 897216102
總結(jié)
以上是生活随笔為你收集整理的使用 gRPCurl 调试.NET 5的gPRC服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: IdentityServer4(六)授权
- 下一篇: 这难道不是.NET5的bug? 在线求锤