热门排行
简介
grpcui是一款非常不错的命令行工具,可以让你通过浏览器与gRPC服务器交互。它有点像Postman,不过是针对gRPC APIs而不是REST,在某些方面,它就像grpcurl的扩展。grpcurl是一个命令行界面,而grpcui则提供了一个基于Web/浏览器的GUI。这让你可以交互式地构建请求以发送到gRPC服务器。欢迎需要此款工具的朋友前来下载使用。
功能介绍
grpcui 支持各种 RPC 方法,包括流式方法。但是,它要求你一次性构造整个请求消息流,然后一次性渲染整个结果的响应消息流(所以你不能像grpcurl那样与双向流交互)。
grpcui支持纯文本服务器和TLS服务器,并且有许多TLS配置选项。它还支持相互的TLS,即客户端需要出示客户端证书。
如上所述,如果服务器支持反射服务,grpcui就可以无缝工作。如果不支持,你可以提供.proto源文件,也可以向grpcui提供protoset文件(包含编译后的描述符,由protoc产生)。
web UI除了定义请求消息数据外,还允许你设置请求元数据。在定义请求消息数据时,它使用动态的HTML表单,支持所有可能的protobuf消息的数据输入,包括对知名类型(如google.protobuf.Timestamp)、one ofs和地图的丰富支持。
除了通过HTML形式输入数据外,还可以以JSON格式输入数据,将整个JSON请求体键入或粘贴到文本表单中。
发出RPC后,Web UI会显示所有gRPC响应元数据,包括服务器发送的头和预告片。当然,它还会以HTML表格的形式显示一个人类可以理解的响应体。
grpcui安装步骤
go get github.com/fullstorydev/grpcui
go install github.com/fullstorydev/grpcui/cmd/grpcui
苦于没有科学上网,所以没能一步到位,手动下载部分依赖,记录如下:
//安装go环境
yum install go
mkdir gopath
export GOPATH=/home/xiaofeng/gopath/
//go get 安装部分
export GOPROXY=https://mirrors.aliyun.com/goproxy/
go get github.com/golang/protobuf
go get github.com/fullstorydev/grpcui
//git clone安装部分
cd github.com/envoyproxy
git clone https://github.com/envoyproxy/go-control-plane.git
mkdir golang.org/x -p
cd golang.org/x
git clone https://github.com/golang/net.git
git clone https://github.com/golang/text.git
git clone https://github.com/golang/sys.git
git clone https://github.com/golang/oauth2.git
mkdir google.golang.org
cd google.golang.org/
git clone https://github.com/protocolbuffers/protobuf-go.git
mv protobuf-go protobuf
git clone https://github.com/googleapis/go-genproto.git
mv go-genproto/ genproto
git clone https://github.com/grpc/grpc-go.git
mv grpc-go/ grpc
mkdir cloud.google.com
cd cloud.google.com/
git clone https://github.com/googleapis/google-cloud-go.git
mv google-cloud-go/ go
使用
//连接本地的50051grpc服务端口,绑定192.168.13.38建立grpcui的访问端口(随机)
#grpcui -bind 192.168.13.38 -plaintext 127.0.0.1:50051
gRPC Web UI available at http://192.168.13.38:38075/
note:注意关闭防火墙
systemctl disable firewalld
浏览器访问
http://192.168.13.38:38075/
更新日志
变化
这个版本包括对Web UI中的一个BUG的修复,对从源代码构建grpcui的用户的一个小修复,以及一些新功能。
网页界面
这些变化影响了命令行工具和 Go 包的使用。
UI现在除了 "请求"、"原始请求 "和 "响应 "选项卡外,还包括一个新的选项卡:"历史 "选项卡。当RPC被调用时,这将把请求的细节存储到浏览器本地存储中。然后,用户可以从这个选项卡中查看RPC的历史记录,并选择一个重新运行。
当试图将元素(通过绿色 "+"按钮)添加到重复或地图字段中时,在另一个地图字段的值内嵌套时,会发生运行时错误。这一点已得到修正。