使用grpcui測(cè)試ASP.NET core的gRPC服務(wù)
grpcui類似Swagger UI,可以用來測(cè)試gRPC服務(wù),使用起來特別簡(jiǎn)單。
其原理是通過自動(dòng)發(fā)現(xiàn)gRPC服務(wù)協(xié)議(當(dāng)然前提是gRPC服務(wù)暴露了Protobuf協(xié)議),然后啟動(dòng)一個(gè)帶界面的Web程序,用戶就可以在網(wǎng)頁中選擇要調(diào)用的接口、填寫參數(shù),然后通過grpcui發(fā)起gRPC請(qǐng)求,最終把執(zhí)行結(jié)果展示出來。
廢話先不說了,直接上圖,看效果:
下邊來看使用方法:
這里以ASP.NET Core gRPC服務(wù)為例,對(duì)于其它語言開發(fā)的gRPC服務(wù)也完全沒有問題,gRPC協(xié)議都是一樣的,只不過順手寫了這個(gè)。
1、添加gRPC服務(wù)反射
首先你得創(chuàng)建一個(gè)ASP.NET Core gRPC服務(wù),這個(gè)用Visual Studio或者VS Code都可以。
服務(wù)要暴露ProtoBuf協(xié)議,需要添加反射,反射是通過Grpc.AspNetCore.Server.Reflection這個(gè)包來支持的,大家按照自己喜歡的方式自行安裝就好了。
代碼比較簡(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)該僅在開發(fā)環(huán)境啟用。否則被別人嗅探了協(xié)議,就不太好了。
- 其實(shí)gRPCui還支持通過proto文件獲取協(xié)議的方式,不過使用反射更加輕松一些。
添加完這兩句就可以啟動(dòng)服務(wù)了。
2、啟動(dòng)grpcui
這個(gè)工具只有一個(gè)exe文件,在Github上開源,直接下載就好了:
Release v1.2.0 · fullstorydev/grpcui (github.com)
然后在命令行啟動(dòng):grpcui -plaintext 127.0.0.1:5002
成功啟動(dòng)后,會(huì)在瀏覽器打開上文中的Web頁面,就可以愉快的測(cè)試了。
注意:
- 這里沒有使用https,服務(wù)監(jiān)聽的是 http://0.0.0.0:5002,所以這里加了個(gè)參數(shù) -plaintext。如果是https,不需要添加這個(gè)參數(shù)。
- grpcui還有很多參數(shù),你可以通過命令 gRPCui -help 來獲取。
這個(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下無法循環(huán)綁定投票的標(biāo)題和選項(xiàng)的解決方法
asp.net下無法循環(huán)綁定投票的標(biāo)題和選項(xiàng)與無法循環(huán)獲得用戶的選擇的解決方法。2010-12-12ASP.NET MVC @Helper輔助方法和@functons自定義函數(shù)的使用方法
本文主要介紹ASP.NET MVC中使用@Helper和@functons自定義一些代碼片段,方便視圖調(diào)用,從而達(dá)到減少重復(fù)代碼,快速開發(fā)的目的,希望對(duì)大家有所幫助。2016-04-04asp.net下生成99個(gè)不同的隨機(jī)數(shù)
asp.net下生成99個(gè)不同的隨機(jī)數(shù)...2007-04-04ASP.NET使用Subtract方法獲取兩個(gè)日期之間的天數(shù)
本節(jié)主要介紹了ASP.NET使用Subtract方法獲取兩個(gè)日期之間的天數(shù),需要的朋友可以參考下2014-08-08asp.net c#采集需要登錄頁面的實(shí)現(xiàn)原理及代碼
當(dāng)我們采集頁面的時(shí)候,如果被采集的網(wǎng)站需要登錄才能采集,原理搞清楚了,就好辦了,我們所要做的僅僅是在采集的時(shí)候(或者說HttpWebRequest提交數(shù)據(jù)的時(shí)候),將Cookie信息放入Http請(qǐng)求頭里面就可以了,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02不使用web服務(wù)(Service)實(shí)現(xiàn)文本框自動(dòng)完成擴(kuò)展
以前寫Ajax 的AutoCompleteExtender功能,都需要寫WCF Service或是Web Service數(shù)據(jù)源,下面的演示,不用寫Service來實(shí)現(xiàn)文本框的AutoCompete extender功能,感興趣的朋友可以參考下哈2013-04-04.net framework中引進(jìn)的var對(duì)象類型聲明
安裝了vs 2008之后,在后臺(tái)代碼中,resharper插件對(duì)后臺(tái)所有局部變量進(jìn)行提示建議,顯示需要采用use implicitly typed local variable declaration,通過代碼修改建議2010-12-12解決Win10無法安裝.Net Framework 3.5提示錯(cuò)誤代碼0x800F081F
這篇文章主要介紹了Win10無法安裝.Net Framework 3.5提示錯(cuò)誤代碼0x800F081F的完美解決方法,需要的朋友可以參考下2017-12-12