使用grpcui測(cè)試ASP.NET core的gRPC服務(wù)
grpcui類似Swagger UI,可以用來(lái)測(cè)試gRPC服務(wù),使用起來(lái)特別簡(jiǎn)單。
其原理是通過(guò)自動(dòng)發(fā)現(xiàn)gRPC服務(wù)協(xié)議(當(dāng)然前提是gRPC服務(wù)暴露了Protobuf協(xié)議),然后啟動(dòng)一個(gè)帶界面的Web程序,用戶就可以在網(wǎng)頁(yè)中選擇要調(diào)用的接口、填寫(xiě)參數(shù),然后通過(guò)grpcui發(fā)起gRPC請(qǐng)求,最終把執(zhí)行結(jié)果展示出來(lái)。
廢話先不說(shuō)了,直接上圖,看效果:

下邊來(lái)看使用方法:
這里以ASP.NET Core gRPC服務(wù)為例,對(duì)于其它語(yǔ)言開(kāi)發(fā)的gRPC服務(wù)也完全沒(méi)有問(wèn)題,gRPC協(xié)議都是一樣的,只不過(guò)順手寫(xiě)了這個(gè)。
1、添加gRPC服務(wù)反射
首先你得創(chuàng)建一個(gè)ASP.NET Core gRPC服務(wù),這個(gè)用Visual Studio或者VS Code都可以。
服務(wù)要暴露ProtoBuf協(xié)議,需要添加反射,反射是通過(guò)Grpc.AspNetCore.Server.Reflection這個(gè)包來(lái)支持的,大家按照自己喜歡的方式自行安裝就好了。
代碼比較簡(jiǎn)單,請(qǐng)直接觀看:
public void ConfigureServices(IServiceCollection services)
{
services.AddGrpc();
services.AddGrpcReflection(); // 劃重點(diǎn)!?。?
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapGrpcService<GreeterService>();
if (env.IsDevelopment())
{
endpoints.MapGrpcReflectionService(); // 劃重點(diǎn)?。?!
}
});
}
重點(diǎn)是代碼中的這兩句:
services.AddGrpcReflection();
endpoints.MapGrpcReflectionService();
注意:
- 為了安全,應(yīng)該僅在開(kāi)發(fā)環(huán)境啟用。否則被別人嗅探了協(xié)議,就不太好了。
- 其實(shí)gRPCui還支持通過(guò)proto文件獲取協(xié)議的方式,不過(guò)使用反射更加輕松一些。
添加完這兩句就可以啟動(dòng)服務(wù)了。
2、啟動(dòng)grpcui
這個(gè)工具只有一個(gè)exe文件,在Github上開(kāi)源,直接下載就好了:
Release v1.2.0 · fullstorydev/grpcui (github.com)
然后在命令行啟動(dòng):grpcui -plaintext 127.0.0.1:5002
成功啟動(dòng)后,會(huì)在瀏覽器打開(kāi)上文中的Web頁(yè)面,就可以愉快的測(cè)試了。

注意:
- 這里沒(méi)有使用https,服務(wù)監(jiān)聽(tīng)的是 http://0.0.0.0:5002,所以這里加了個(gè)參數(shù) -plaintext。如果是https,不需要添加這個(gè)參數(shù)。
- grpcui還有很多參數(shù),你可以通過(guò)命令 gRPCui -help 來(lái)獲取。
這個(gè)工具面向所有g(shù)RPC服務(wù),如果你使用別的技術(shù)棧,也是完全可以的。
到此這篇關(guān)于使用grpcui測(cè)試ASP.NET core gRPC服務(wù) 的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- .NET?Core(.NET6)中g(shù)RPC使用實(shí)踐
- .Net?Core微服務(wù)rpc框架GRPC通信實(shí)際運(yùn)用
- .Net?Core微服務(wù)rpc框架GRPC通信基礎(chǔ)
- 在?ASP.NET?Core?中為?gRPC?服務(wù)添加全局異常處理
- 如何在.NET Core中為gRPC服務(wù)設(shè)計(jì)消息文件(Proto)
- .Net Core中使用Grpc的方法
- ASP.NET Core 3.0 gRPC攔截器的使用
- ASP.NET Core 3.0使用gRPC的具體方法
- 圖析ASP.NET Core引入gRPC服務(wù)模板
- ASP.NET Core中Grpc通信的簡(jiǎn)單用法
相關(guān)文章
ASP.NET?Core?MVC控制器請(qǐng)求依賴注入
這篇文章介紹了ASP.NET?Core?MVC控制器請(qǐng)求依賴注入的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
ASP.net在頁(yè)面所有內(nèi)容生成后、輸出內(nèi)容前對(duì)頁(yè)面內(nèi)容進(jìn)行操作
ASP.net在頁(yè)面所有內(nèi)容生成后、輸出內(nèi)容前對(duì)頁(yè)面內(nèi)容進(jìn)行操作...2007-04-04
asp.net無(wú)法獲取iis目錄的問(wèn)題解決方法
本文介紹了Asp.Net無(wú)法獲取IIS拾取目錄的解決辦法,需要的朋友可以參考下2014-02-02
asp.net 網(wǎng)頁(yè)動(dòng)態(tài)查詢條件的實(shí)現(xiàn)
最近有一個(gè)需求,會(huì)在 mongodb 中插入各種類型的數(shù)據(jù),算是記錄業(yè)務(wù)日志的數(shù)據(jù)庫(kù)吧。因?yàn)闃I(yè)務(wù)對(duì)象類型都不同,所以插入的數(shù)據(jù)格式也完全不同2012-10-10
asp.net網(wǎng)站底部的版權(quán)信息實(shí)現(xiàn)代碼且可維護(hù)
網(wǎng)站底部的版權(quán)信息在特殊情況還是比較重要的所以在實(shí)現(xiàn)的時(shí)候一定要盡可能的做到可維護(hù)性,接下來(lái)將介紹一些技巧可達(dá)到可維護(hù)效果,感興趣的你可不要錯(cuò)過(guò)了哈2013-02-02
web.config中配置數(shù)據(jù)庫(kù)連接的方式
Web.config文件是一個(gè)XML文本文件,它用來(lái)儲(chǔ)存 ASP.NET Web 應(yīng)用程序的配置信息(如最常用的設(shè)置ASP.NET Web 應(yīng)用程序的身份驗(yàn)證方式),它可以出現(xiàn)在應(yīng)用程序的每一個(gè)目錄中。本文主要介紹web.config中配置數(shù)據(jù)庫(kù)連接的兩種方式,一起來(lái)看。2015-10-10
ASP.NET登錄注冊(cè)頁(yè)面實(shí)現(xiàn)
這篇文章主要介紹了ASP.NET登錄注冊(cè)頁(yè)面如何實(shí)現(xiàn),感興趣的小伙伴們可以參考一下2015-10-10
WPF實(shí)現(xiàn)簡(jiǎn)單的跑馬燈效果
這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)簡(jiǎn)單的跑馬燈效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
使用Ajax更新ASP.Net MVC項(xiàng)目中的報(bào)表對(duì)象方法
下面小編就為大家分享一篇使用Ajax更新ASP.Net MVC項(xiàng)目中的報(bào)表對(duì)象方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01

