请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

[系列] Go gRPC 调试工具

[复制链接]
查看: 20|回复: 0

7860

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
31862
发表于 2019-11-9 16:19 | 显示全部楼层 |阅读模式
目录
            
    概述

近来这段时候工作挺忙的,发现已经 3 周没更文了...
感激你们还在,本日给大家分享一款 gRPC 的调试工具。
进入正题。
当我们在写 HTTP 接口的时候,利用的是 Postman 举行接口调试,那末在写 gRPC 接口的时候,有没有类似于 Postman 的调试工具呢?
[系列] Go gRPC 调试工具  游戏 389840-20191109143303140-1026193203

这是有的。
我们一路看下 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 文件:
  1. 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 方式:
  1. func (l *ListenController) ListenData(ctx context.Context, in *listen.Request) (*listen.Response, error) {    return &listen.Response{Message : fmt.Sprintf("[%s]", in.Name)}, nil}
复制代码
这表现,将 Name 间接返回。
源码地址:
https://github.com/xinliangnote/go-jaeger-demo/tree/master/listen
启动办事
  1. cd listen && go run main.go
复制代码
办事启动乐成后,等待利用。
grpcui 利用

安装

按照官方 README.md 文档安装即可。
  1. go get github.com/fullstorydev/grpcuigo install github.com/fullstorydev/grpcui/cmd/grpcui
复制代码
这时,在 $GOPATH/bin 目录下,天生一个 grpcui 可实行文件。
实行个命令,考证下:
  1. grpcui -help
复制代码
输出:
  1. Usage:    grpcui [flags] [address]    ......  
复制代码
表现安装乐成了。
运转
  1. grpcui -plaintext 127.0.0.1:9901Failed to compute set of methods to expose: server does not support the reflection API
复制代码
这类情况下,加个反射便可以了,在 listen 的 main.go 新增以下代码即可:
  1. reflection.Register(s)
复制代码
在运转一次试试:
  1. grpcui -plaintext 127.0.0.1:9901gRPC Web UI available at http://127.0.0.1:63027/
复制代码
在欣赏器中拜候:http://127.0.0.1:63027/
[系列] Go gRPC 调试工具  游戏 389840-20191109143325708-1281464227

到这,我们看到 Service name、Method name 都出来了,传输参数间接在页面上举行操纵即可。
当倡议 Request "Tom",也能获得 Response “Tom”。
固然,假如这个办事下面有多个 Service name,多个 Method name 也城市表现出来的,去试试吧。
go-gin-api 系列文章


免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 妈妈网-中国妈妈第一,是怀孕、育儿、健康等知识交流传播首选平台 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表