概述

最近这段时间工作挺忙的,发现已经 3 周没更文了...

感谢你们还在,今天给大家分享一款 gRPC 的调试工具。

进入正题。

当我们在写 HTTP 接口的时候,使用的是 Postman 进行接口调试,那么在写 gRPC 接口的时候,有没有类似于 Postman 的调试工具呢?


当然是有的 ~

咱们一起看下 grpcui,源码地址:

https://github.com/fullstorydev/grpcui

看下官方描述:

grpcui is a command-line tool that lets you interact with gRPC servers via a browser. It's sort of like Postman, but for gRPC APIs instead of REST.

下面带大家一起用用...

写一个 gRPC API

我原来写过 Demo,可以直接用原来写的 listen 项目。

端口:9901

.proto 文件:

   syntax = "proto3"; // 指定 proto 版本
package listen; // 指定包名
// 定义服务
service Listen {
// 定义方法
rpc ListenData(Request) returns (Response) {}
}
// Request 请求结构
message Request {
string name = 1;
}
// Response 响应结构
message Response {
string message = 1;
} 很简单,这个大家一看就知道了。 Service name 为 listen.Listen Method name 为 ListenData 再看下 ListenData 方法: func (l *ListenController) ListenData(ctx context.Context, in *listen.Request) (*listen.Response, error) {
return &listen.Response{Message : fmt.Sprintf("[%s]", in.Name)}, nil
}

这里我还准备了一分学习图和资料,如下:

链接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取码:x2p5

免费分享,但是X度限制严重,如若链接失效点击链接或搜索加群 群号518475424

这表示,将 Name 直接返回。

源码地址:

https://github.com/xinliangnote/go-jaeger-demo/tree/master/listen

启动服务

cd listen && go run main.go

服务启动成功后,等待使用。

grpcui 使用
安装

根据官方 README.md 文档安装即可。

    go get github.com/fullstorydev/grpcui
go install github.com/fullstorydev/grpcui/cmd/grpcui

这时,在 $GOPATH/bin 目录下,生成一个 grpcui 可执行文件。

执行个命令,验证下:

grpcui -help

输出:

    Usage:
grpcui [flags] [address]
......

表示安装成功了。

运行

    grpcui -plaintext 127.0.0.1:9901
Failed to compute set of methods to expose: server does not support the reflection API

这种情况下,加个反射就可以了,在 listen 的 main.go 新增如下代码即可:

reflection.Register(s)

在运行一次试试:

    grpcui -plaintext 127.0.0.1:9901
gRPC Web UI available at http://127.0.0.1:63027/

表示运行成功了。

在浏览器中访问:http://127.0.0.1:63027/

到这,我们看到 Service name、Method name 都出来了,传输参数直接在页面上进行操作即可。

当发起 Request "Tom",也能获得 Response “Tom”。

当然,如果这个服务下面有多个 Service name,多个 Method name 也都会显示出来的,去试试吧。

Go gRPC 调试工具的更多相关文章

  1. grpc调试工具

    grpcurl 和 grpcui 都是调试grpc的利器,前者用于命令行,类似curl工具:后者是以web的形式进行调试的,类似postman工具. 有了这两款工具,我们不用写任何客户端代码,也能方便 ...

  2. Golang gRPC调试工具

    目录 Golang gRPC调试工具 1. 命令行工具 grpcurl 1.1 安装 1.2 验证 1.3 注册反射 1.4 使用示例 2. web调试工具grpcui 2.1 安装 2.2 验证 2 ...

  3. [系列] Go gRPC 调试工具

    目录 概述 写一个 gRPC API grpcui 使用 go-gin-api 系列文章 概述 最近这段时间工作挺忙的,发现已经 3 周没更文了... 感谢你们还在,今天给大家分享一款 gRPC 的调 ...

  4. 【gRPC】如何便捷的调试gRPC程序

    前言 gRPC是一款广泛应用的rpc框架,因为基于C/S架构,服务启动之后,需要编写对应的客户端才能调用,调试起来相对麻烦一些,这里主要介绍一下如何通过swagger-ui来调试grpc服务. grp ...

  5. Golang/Python/PHP带你彻底学会gRPC

    目录 一.gRPC是什么? 二.Protocol Buffers是什么? 三.需求:开发健身房服务 四.最佳实践 Golang 1. 安装protoc工具 2. 安装protoc-gen-go 3. ...

  6. go语言周边

    博主收藏的go语言资料,分享一波~~~ 官网 https://golang.org/ (被墙) 镜像: http://docscn.studygolang.com/ 下载镜像: https://gom ...

  7. .NetCore|.Net6 gRPC服务开发及本地调试

    前言 最近在项目中实装应用了gRPC技术,本着能把技术描述出来给别人能看的懂的思想及作为自己学习笔记的心态编写了此文.因为在实际项目中是webApi接口和gRPC接口使用在同一项目服务中,所以本文的例 ...

  8. Go微服务实战 - 用户服务开发(gRPC+Protocol Buffer)

    概要 用户服务基本是每个互联网产品里必备的一个服务了,因为没有用户基本是什么也干不了.所以他的重要性不言而喻.本文主要介绍下如何开发一个用户微服务,以及他的详细开发流程. 目录 Go微服务实战 - 从 ...

  9. 发布:.NET开发人员必备的可视化调试工具(你值的拥有)

    1:如何使用 1:点击下载:.NET可视化调试工具 (更新于2016-12-29 19:11:00) (终于彻底兼容了部分VS环境下无法使用的问题) 2:解压RAR后执行:CYQ.VisualierS ...

随机推荐

  1. NET 特性(Attribute)

    NET 特性(Attribute) 转自 博客园(Fish) 特性(Attribute):是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签. 您可以通过使用特 ...

  2. maven 学习---Maven 插件

    什么是 Maven 插件? Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成.Maven 插件通常被用来: 创建 jar 文件 创建 war 文件 编译代码文件 代码单元测试 创 ...

  3. Java使用MD5加盐进行加密

    Java使用MD5加盐进行加密    我使用的方法是导入了md5.jar包,就不需要再自己写MD5的加密算法了,直接调用方法即可 点击下载md5包 import com.ndktools.javamd ...

  4. nginx Linux内核参数的优化

    默认的Linux内核参数考虑的是最通用的场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,使得Nginx可以拥有更高的性能. 这里针对最通用的.使Nginx支持 ...

  5. lua脚本之钉钉免密登录

    nginx.conf worker_processes ; error_log logs/error.log; events { worker_connections ; } http { resol ...

  6. Centos7安装elasticSearch6

                                                    Elasticsearch6.0 1.Elasticsearch: Elasticsearch是一个基于 ...

  7. Windows Server2008 R2 服务器域名设置Https安全证书访问

    域名支持Https访问设置 1.首先登陆域名申办公司的域名管理账号添加TXT域名解析信息 以新网域名公司为例:http://dcp.xinnet.com,输入域名:www.xxx.com和密码登录即可 ...

  8. 基于图的异常检测(三):GraphRAD

    基于图的异常检测(三):GraphRAD 风浪 一个快乐的数据玩家/风控/图挖掘 24 人赞同了该文章 论文:<GraphRAD: A Graph-based Risky Account Det ...

  9. luoguP4393Sequence

    https://www.luogu.org/problem/P4393 题意 给你n个点的一个数列,每次可以合并两个相邻的数为他们的最大值,且代价为这两个数的最大值,求将整个序列合并为1个数的最小代价 ...

  10. JPA-save()方法会将字段更新为null的解决方法

    今天在开发上碰到一个问题,在做页面展示的时候传给前端十个字段,前端修改了其中3个的值,所以只传了3个值给后端,其余字段默认为null,更新后其他7个字段在全部变为了空值. 在前端没法全量回传所有属性的 ...