成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

擼了一個可調試 gRPC 的 GUI客戶端

網絡 通信技術
由于核心能力是用 Go 實現的,所以這個 APP 最好也是用 Go 來寫,這樣復用代碼會更方便一些;正好也想看看用 Go 來實現 GUI 應用效果如何。

[[437208]]

本文轉載自微信公眾號「crossoverJie」,作者crossoverJie 。轉載本文請聯系crossoverJie公眾號。

前言

平時大家寫完 gRPC 接口后是如何測試的?往往有以下幾個方法:

寫單測代碼,自己模擬客戶端測試。

可以搭一個 gRPC-Gateway 服務,這樣就可以在 postman 中進行模擬。

但這兩種方法都不是特別優雅;第一種方法當請求結構體嵌套特別復雜時,在代碼中維護起來就不是很直觀;而且代碼會特別長。

第二種方法在 postman 中與請求 HTTP 接口一樣,看起來非常直觀;但需要額為維護一個 gRPC-Gateway 服務,同時接口定義發生變化時也得重新發布,使用起來稍顯復雜。

于是我經過一番搜索找到了兩個看起來還不錯的工具:

  • BloomRPC
  • https://github.com/fullstorydev/grpcui

首先看 BloomRPC 頁面美觀,功能也很完善;但卻有個非常難受的地方,那就是不支持 int64 數據的請求, 會有精度問題。

這里我寫了一個簡單的接口,直接將請求的 int64 返回回來。

  1. func (o *OrderCreate(ctx context.Context, in *v1.OrderApiCreate) (*v1.Order, error) { 
  2.  fmt.Println(in.OrderId) 
  3.  return &v1.Order
  4.   OrderId: in.OrderId, 
  5.   Reason:  nil, 
  6.  }, nil 

會發現服務端收到的數據精度已經丟失了。

這個在我們大量使用 int64 的業務中非常難受,大部分接口都沒法用了。

grpcui 是我在使用了 BloomRPC 一段時間之后才發現的工具,功能也比較完善; BloomRPC 中的精度問題也不存在。

但由于我之前已經習慣了在 BloomRPC 中去調試接口,加上日常開發過程中我的瀏覽器幾乎都是開了幾十個 tap 頁面,導致在其中找到 grpcui 不是那么方便。

所以我就想著能不能有一個類似于 BloomRPC 的獨立 APP,也支持 int64 的工具。

準備

找了一圈,貌似沒有發現。恰好前段時間寫了一個 gRPC 的壓測工具,其實已經把該 APP 需要的核心功能也就是泛化調用實現了。

由于核心能力是用 Go 實現的,所以這個 APP 最好也是用 Go 來寫,這樣復用代碼會更方便一些;正好也想看看用 Go 來實現 GUI 應用效果如何。

但可惜 Go 并沒有提供原生的 GUI 庫支持,最后翻來找去發現了一個庫:fyne

從 star 上看用的比較多,同時也支持跨平臺打包;所以最終就決定使用該庫在構建這個應用。

核心功能

整個 App 的交互流程我參考了 BloomRPC ,但作為一個不懂審美、設計的后端開發來說,整個過程中最難的就是布局了。

這是我花了好幾個晚上調試出來的第一版頁面,雖然也能用但查看請求和響應數據非常不方便。

于是又花了一個周末最終版如下(乍一看貌似沒區別):

雖然頁面上與 BloomRPC 還有一定差距,但也不影響使用;關鍵是 int64 的問題解決了;又可以愉快的擼碼了。

安裝

有類似需求也想體驗的朋友可以在這里下載使用:https://github.com/crossoverJie/ptg/releases/download/0.0.2/ptg-mac-gui.tar

由于我手上暫時沒有 Windows 電腦,所以就沒有打包 exe 程序;有相關需求的朋友可以自行下載源碼編譯:

  1. git clone git@github.com:crossoverJie/ptg.git 
  2. cd ptg 
  3. make pkg-win 

后續計劃

當前版本的功能還比較簡陋,只支持常用的 unary 調用;后續也會逐步加上 stream、metadata、工作空間的存儲與還原等支持。

對頁面、交互有建議也歡迎提出。

原本是準備上傳到 brew 方便安裝的,結果折騰了一晚上因為數據不夠被拒了,所以對大家有幫助或者感興趣的話幫忙點點關注(咋有種直播帶貨的感覺??)

 

源碼地址:https://github.com/crossoverJie/ptg

 

責任編輯:武曉燕 來源: crossoverJie
相關推薦

2021-07-28 11:46:51

工具gRPC客戶端

2021-02-07 18:19:44

RabbitMQ客戶端

2022-03-14 09:35:43

Pythonhttpx

2019-07-22 20:03:23

Docker操作系統Linux

2020-11-04 07:56:19

工具Linux 翻譯

2020-02-25 09:45:05

Dino開源XMPP

2016-10-09 08:35:09

Linux桌面REST

2017-07-24 10:18:55

LinuxNylas Mail郵件客戶端

2012-12-07 10:15:53

IBMdW

2020-05-22 22:48:01

GUI Git開發命令行

2014-03-10 10:22:40

JavaScriptJS弊端

2022-02-20 23:15:46

gRPCGolang語言

2014-10-27 15:21:40

程序員代碼

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2024-07-03 08:36:14

序列化算法設計模式

2021-11-04 17:23:03

Java對象 immutable

2022-06-14 15:07:04

IPC客戶端服務端

2019-02-25 14:54:37

開源播客客戶端gPodder

2017-06-05 14:27:56

MyCLIMySQLMariaDB

2021-02-03 07:56:08

版本游戲邏輯
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产乱码久久久久久丨区2区 | 国产精品视频网址 | 国产精品久久精品 | 精品熟人一区二区三区四区 | 欧美日韩综合一区 | 精品国产乱码久久久久久牛牛 | 五月婷婷色 | 色婷婷精品 | 国产欧美日韩精品一区二区三区 | 久草视频观看 | 国产午夜精品一区二区三区在线观看 | 亚洲综合色视频在线观看 | 国产亚洲区 | 妖精视频一区二区三区 | 伊人焦久影院 | 日韩爱爱网 | 在线免费观看黄a | 中文字幕一区在线观看视频 | 韩日av在线 | 欧美精品久久久久久久久老牛影院 | 粉嫩粉嫩芽的虎白女18在线视频 | 四虎在线观看 | 午夜爽爽爽男女免费观看 | 亚洲欧美国产毛片在线 | 日本成人福利视频 | 综合色影院 | 影音先锋成人资源 | 91久久国产综合久久91精品网站 | 在线观看国产视频 | 亚洲免费人成在线视频观看 | 日韩综合在线 | 久久精品视频一区二区 | 亚洲精品一区二区三区在线观看 | 污污的网站在线观看 | 久久精品一区二区三区四区 | 欧美中国少妇xxx性高请视频 | 99亚洲精品| 蜜月aⅴ国产精品 | 亚洲一区二区三区在线视频 | 精品国产一区二区三区性色av | 狠狠狠干 |