使用grpcui测试gRPC服务

简介: 使用grpcui测试gRPC服务

grpcui类似Swagger UI,可以用来测试gRPC服务,使用起来特别简单。

其原理是通过自动发现gRPC服务协议(当然前提是gRPC服务暴露了Protobuf协议),然后启动一个带界面的Web程序,用户就可以在网页中选择要调用的接口、填写参数,然后通过grpcui发起gRPC请求,最终把执行结果展示出来。

废话先不说了,直接上图,看效果:

1689138866628.png

下边来看使用方法:

这里以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页面,就可以愉快的测试了。

1689138940307.png

注意:


这个工具面向所有gRPC服务,如果你使用别的技术栈,也是完全可以的。

以上就是本文主要内容了,如有错漏欢迎指正。

参考文章:docs.microsoft.com/zh-cn/aspne…



相关文章
|
2月前
javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——Dept实体类
javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——Dept实体类
8 0
|
2月前
javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Dao层
javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Dao层
10 0
|
2月前
javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——测试
javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——测试
8 0
|
2月前
javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——Emp实体类
javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——Emp实体类
7 0
|
2月前
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
7 0
|
2月前
javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext.xml
javaWeb服务详解(含源代码,测试通过,注释) ——applicationContext.xml
7 0
|
2月前
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Service层
vjavaWeb服务详解(含源代码,测试通过,注释) ——Emp的Service层
5 0
|
2月前
javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Service层
javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Service层
9 0
|
2月前
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
7 0
|
2月前
javaWeb服务详解(含源代码,测试通过,注释) ——Emp实体类
javaWeb服务详解(含源代码,测试通过,注释) ——Emp实体类
7 0

热门文章

最新文章