接口調試是每個軟件開發從業者必不可少的一項技能,一個項目的完成必然通過大量的接口測試,實際開發過程當中,接口調試的時間不比實際開發所用的時間少。html
做爲前端開發人員,咱們一般使用 Postman(或 PostWoman 等 ) 工具來進行REST API調用。前端
Postman 用來調試接口很方便,但它有不少限制。git
咱們已經使用 VSCode 開發項目,爲何咱們還須要額外打開 Postman 去調試接口喃?而且 Postman 運行佔用了大量的 RAM,這對 RAM 緊缺的設備來講,尤其重要。github
進行調用測試 API 是能夠的,可是若是你要編輯、版本控制或僅與你的團隊共享,則不是很方便。json
固然,你可使用 Postman 付費版本,但這意味着你須要付費,而且你所在的全部團隊都須要使用 Postman ,這工程量就很大了!後端
REST Client 是一個 VS Code 擴展插件,它容許你發送 HTTP 請求並直接在 VS Code 上查看響應結果。api
因爲它是基於文本格式,因此咱們能夠輕鬆的在存儲庫之間進行版本控制。👍markdown
步驟一:安裝 REST Client 插件app
步驟二: 建立一個 .http
或 .rest
文件dom
步驟三:寫入測試接口
POST http://dummy.restapiexample.com/api/v1/create HTTP/1.1 content-type: application/json { "name":"Hendry", "salary":"61888", "age":"26" } 複製代碼
curl -X POST "http://dummy.restapiexample.com/api/v1/create" -d "Hello World" 複製代碼
若是省略 request
方法,請求將被視爲 GET
。
注意:接口間經過 ###
分隔,同一個 .http
文件裏能夠涵蓋多個 HTTP 請求。不像 Postman,不一樣的 HTTP 請求須要放在不一樣的 tab 裏。
步驟四:發送請求,測試接口
點擊 Send Request
,或者右鍵選擇 Send Request
,或者直接用快捷鍵 Ctrl+Alt+R
(或Cmd+Alt+R
) ,你的 REST API 就執行了,而後 API Response 就會顯示在右邊區域。
一個 http 文件可能定義許多請求和文件級自定義變量,很難找到你想要的請求/變量。咱們可使用快捷鍵 Ctrl+Shift+O
(或Cmd+Shift+O
)來切換請求/變量。
自定義環境變量
不一樣的環境(開發、測試、生產),API 接口參數可能有所不一樣,咱們不可能每次切換環境的時候,都手動修改代碼,因此咱們能夠自定義項目的環境變量,每次切換便可。
點擊 Code => Preferences => Settings 打開設置,切換到 Workspace Settings
,配置 settings.json
文件:
{ "rest-client.environmentVariables": { "$shared": { "version": "v1", "prodToken": "foo", "nonProdToken": "bar" }, "local": { "version": "v2", "host": "localhost", "dummyhost": "local", "token": "{{$shared nonProdToken}}", "secretKey": "devSecret" }, "production": { "host": "api.apiopen.top", "dummyhost": "dummy.restapiexample.com", "token": "{{$shared prodToken}}", "secretKey" : "prodSecret" } } } 複製代碼
能夠切換不一樣的環境(Ctrl+Alt+E 或 Cmd+Alt+E),調用相應的配置項(host
、 token
等)。
### 測試接口 RFC 2616
// host 爲環境變量
GET https://{{host}}/musicRankings HTTP/1.1
複製代碼
固然,rest-client
還有更多的配置項,例如:
rest-client.defaultHeaders
:默認的 header 請求體,默認爲 { "User-Agent": "vscode-restclient", "Accept-Encoding": "gzip" }
;rest-client.timeoutinmilliseconds
:超時時長,默認爲 0 ms;rest-client.previewOption
:控制哪些部分應該經過rest-client預覽,可選 full
、 headers
、 body
、 exchange
,默認爲 full
;rest-client.followredirect
:是否支持 HTTP 3xx 的重定向,默認支持;等等…...
自定義文件變量
咱們能夠在 HTTP 文件任意位置定義文件變量,它們均可以在整個文件的任何請求中引用。例如:
// 文件變量
@port = 8080
@contentType = application/json
### 測試接口 RFC 2616
// 文件變量
@name = musicRankings
GET https://{{host}}/{{name}} HTTP/1.1
複製代碼
@variableName = variableValue
佔用完整行的語法;variableName
)不得包含任何空格。至於變量值(variableValue
),它能夠由任何字符組成,甚至容許空格(前導和尾隨空格將被剝離);\n
;自定義請求變量
當單個請求結果的值須要被其它請求使用時,可使用請求變量,格式爲:@name newname
,請求變量引用語法爲 {{requestName.(response|request).(body|headers).(JSONPath|XPath|Header Name)}}
。
@contentType = application/json
###
# @name createComment
POST https://{{host}}/comments HTTP/1.1
Content-Type: {{contentType}}
###
# @name getCreatedComment
GET https://{{host}}/comments/{{createComment.response.body.$.id}} HTTP/1.1
Authorization: {{login.response.headers.X-AuthToken}}
複製代碼
系統變量
系統自帶的一些變量,使用系統變量須要有 $
符號
{{$guid}}
惟一識別號{{$randomInt min max}}
返回一個min
和 max
之間的隨機數{{$timestamp [offset option]}}
:添加UTC
時間戳。{{$timestamp number option}}
,例如3小時前{{$timestamp -3 h}}
;表明後天{{$timestamp 2 d}}
。更多系統變量用法請參考 官方文檔
更多功能等待你的挖掘,詳見vscode-restclient!!!👏👏👏
Postman 有口皆碑,確實是一個不錯的工具,但 REST Client 也值得進行嘗試,畢竟連後端也已經推出了 IDEA REST Client, 在和同事進行協做開發時,在項目中增長一個 .http
接口請求文件,方便本身的同時方便其餘人。
若是以爲不錯,就點個贊吧!👍👍👍
想看往期更過系列文章,點擊前往 github 博客主頁
❤️玩得開心,不斷學習,並始終保持編碼。👨💻
若有任何問題或更獨特的看法,歡迎評論或直接聯繫瓶子君(公衆號回覆 123 便可)!👀👇
👇歡迎關注:前端瓶子君,每日更新!👇