使用grpcui测试ASP.NET core gRPC服务
2022/2/16 9:11:38
本文主要是介绍使用grpcui测试ASP.NET core gRPC服务,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
grpcui类似Swagger UI,可以用来测试gRPC服务,使用起来特别简单。
其原理是通过自动发现gRPC服务协议(当然前提是gRPC服务暴露了Protobuf协议),然后启动一个带界面的Web程序,用户就可以在网页中选择要调用的接口、填写参数,然后通过grpcui发起gRPC请求,最终把执行结果展示出来。
废话先不说了,直接上图,看效果:
下边来看使用方法:
这里以ASP.NET Core gRPC服务为例,对于其它语言开发的gRPC服务也完全没有问题,gRPC协议都是一样的,只不过顺手写了这个。
1、添加gRPC服务反射
首先你得创建一个ASP.NET Core gRPC服务,这个用Visual Studio或者VS Code都可以。
服务要暴露ProtoBuf协议,需要添加反射,反射是通过Grpc.AspNetCore.Server.Reflection这个包来支持的,大家按照自己喜欢的方式自行安装就好了。
代码比较简单,请直接观看:
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(); // 划重点!!! } }); }
重点是代码中的这两句:
services.AddGrpcReflection();
endpoints.MapGrpcReflectionService();
注意:
- 为了安全,应该仅在开发环境启用。否则被别人嗅探了协议,就不太好了。
- 其实gRPCui还支持通过proto文件获取协议的方式,不过使用反射更加轻松一些。
添加完这两句就可以启动服务了。
2、启动grpcui
这个工具只有一个exe文件,在Github上开源,直接下载就好了:
Release v1.2.0 · fullstorydev/grpcui (github.com)
然后在命令行启动:grpcui -plaintext 127.0.0.1:5002
成功启动后,会在浏览器打开上文中的Web页面,就可以愉快的测试了。
注意:
- 这里没有使用https,服务监听的是 http://0.0.0.0:5002,所以这里加了个参数 -plaintext。如果是https,不需要添加这个参数。
- grpcui还有很多参数,你可以通过命令 gRPCui -help 来获取。
这个工具面向所有gRPC服务,如果你使用别的技术栈,也是完全可以的。
以上就是本文主要内容了,如有错漏欢迎指正。
参考文章:https://docs.microsoft.com/zh-cn/aspnet/core/grpc/test-tools?view=aspnetcore-6.0
收获更多架构知识,请关注微信公众号 萤火架构。原创内容,转载请注明出处。
这篇关于使用grpcui测试ASP.NET core gRPC服务的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#