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