一篇帶給你PostmangRPC功能使用介紹
工具現狀
對于API調試工具來說近幾年國內有不少整合的比較好的工具,比如Apifox、Apipost等。這些工具主打主打功能整合,多種功能集成一步到位,但目前對于協議的多樣性則支持得較慢,截止本文寫作時間點,其更多類型的支持暫時放到了后續規劃中。
Postman
Postman作為API調試的老大哥,整體的功能時比較全的,WebSocket(也是BETA)之前就已經支持了。而在最近的幾個版本中Postman也提供了gRPC功能的支持。截止本文時間點,Postman最新版本為v9.14.0,所以本文也是基于該版本進行學習和功能使用介紹。
Release Notes
Postman在最近幾個版本中對grpc的功能進行了beta測試。
Postman v9.7.1
在v9.7.1中Postman首次支持了gRPC功能的使用,在當時版本中已經基本支持了gRPC的單獨功能使用。主要支持了單次、單雙向流式的gRPC調用。同時也能使用Postman中的變量。
在這個版本中需要我們手動在Postman中定義Proto文件。
Postman v9.9.0
在v9.9.0中支持了直接加載服務器中暴露出來的gRPC方法來直接使用。
Postman v9.14.0
在v9.14.0中可以直接使用加載本地中的proto文件作為定義文件來使用。
使用流程
在Postman中的接口定義流程和v9.7.1中基本一致,通過新建Request以及選擇gRPC來建立一個gRPC。其中主要定義功能我分為了6塊,具體分割如下圖:
service URL
需要定義service URL地址,ip或域名,主要注意是要指定gRPC的接口。
服務方法組
比較重要的是服務方法的選擇。目前有四種添加途徑:
- 通過服務器掃描映射。
- 加載本地文件
- 通過URL加載定義文件
- 直接創建一個新的API定義
但需要注意,通過服務器映射的這個方法我自己實際測試并不能完全地掃描到所有的服務器接口,可能是有用法上的問題。
而導入本地文件、使用導入url以及直接定義新的鏈接本質上都是在Postman的APIs管理中添加了一個Protobuf定義文件,所以在v9.14.0版本的更新中所添加的“本地文件導入功能”,僅僅是幫助用戶省去了在APIs中新建定義接口的功能,但是直接將用戶的功能使用路線全部聚焦到接口調試界面中,我認為很大程度的提高了用戶使用體驗。
但是不一樣的是,在使用本地導入的時候,如果使用"import"關鍵字引入了其他的proto定義文件,postman暫時無法描述這種定義關系,在request中可以直接使用,但是無法保存,也無法記錄到APIs中。所以盡量按照規范將接口描述在一個proto文件中。
調用方法
選擇需要調用的具體方法,其中左側圖標會標記出方法的調用類型。
消息定義
消息定義區域中有有三個tab,message中使用JSON方式來定義消息結構體,在使用JSON定義結構體的時候字符串與數值類型會自動在發送的時候根據proto中定義的類型。其余兩個的使用方式與Http API基本一致。
便捷工具
目前提供了“美化”與“請求樣例生成”功能,值得注意的是,在早期版本中樣例生成是用""的圖標,但是在目前版本中直接使用文字進行提示了,我猜測是因為燈泡的圖標在大眾的使用習慣中主要是“幫助”、“提示”的意思,所有導致該功能的使用率較低,所以直接換成了文字進行提示。
響應體
該部分以JSON格式展示返回信息,以及其他的響應狀態與訪問時間等。
最后
因為實際的使用需求所以對該Postman工具中的gRPC部分進行了使用上的學習。根據Release Notes以及git上的Issues觀察了軟件的演進這件事還挺有意思的。