乐趣区

关于后端:使用grpcui测试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…

播种更多架构常识,请关注微信公众号 萤火架构。原创内容,转载请注明出处。

退出移动版