IDEA--HTTP Client 工具

目錄

走進 Http Client

創建 HTTP request 文件

編輯 HTTP request 文件

HTTP Client 進階玩法

使用環境變量

定義環境變量

巧用 response handler 腳本

輔助功能說明

RestfulToolkit

Live Template

JSON Viewer


走進 Http Client

HTTP Client 是 IDEA 默認綁定好並啓用的插件,如果你那裏沒有啓用,按照下圖啓用就好

點擊菜單:Tools — HTTP Client — Test RESTful Web Service

接下來進入下面的界面:

上圖已給出提示,REST Client 是被棄用的,點擊右側的 Convert request to new format , 進到下面界面:

默認會創建一個名爲 rest-api.http 的文件,該文件被存儲在 Scratches 文件夾下,爲了突出主角光環,關於 Scratch Files 請官網自行查看 (繼續向下看不影響理解的),黃色框線的功能也非常有用,繼續向下看

創建 HTTP request 文件

剛剛提到的 rest-api.http 就是 HTTP request 文件,可以通過兩種方式創建:

  1. 通過快捷鍵  ⇧⌘N  然後選擇 HTTP Request. (文件存放在Scratches 文件夾)

  2. 通過菜單操作 File—New—HTTP Request (文件存放在我們指定的目錄下,就和我們平時創建class/package是一樣一樣滴)

如果在項目中使用,這裏推薦使用第二種方式,因爲它可以作爲項目文件,通過 Git 提交到倉庫,大家共享文件,共同維護接口請求數據,自然就不會出現調試別人接口還要導入他人數據的情況啦

編輯 HTTP request 文件

我們模擬實際項目中場景來編輯文件

  1. 用戶登錄,成功後獲取 Token,通常是 POST 請求

  2. 用戶後續訪問行爲都要在請求頭中攜帶登錄成功返回的 Token

通過點擊 Add Request,選擇相應的方法就可以編寫啦

都知道,通常寫一個完整的請求需要寫好多內容,貼心的 IDEA 給我們提供了模版,我們只需要在 Examples 中找模版就可以啦,比如找 POST 請求的模版,選取合適的拷貝過去就可以,so easy~~~

到這裏,就可以發送基本的請求了,但是,一個項目中接口衆多,如何快速生成參數?如何快速切換端口?如何讓登錄之後的每個請求自動攜帶成功返回的 Token?我們需要更高級的玩法

HTTP Client 進階玩法

使用環境變量

在編寫HTTP請求時,可以使用變量對其元素進行參數化。變量可以保存請求的host、port和path、查詢參數或值、請求頭值或請求體值等.

使用變量的方式非常簡單,就用兩個大括號包圍定義好的變量就可以了,就像這樣:

當然我們也要有地方定義變量

定義環境變量

環境變量需要定義在環境文件中,環境文件有兩種:

  1. 創建名爲 rest-client.env.json 或者 http-client.env.json 的環境文件(其實裏面就是保存 JSON 數據),該文件裏可以定義用在整個項目上的所有常規變量

  2. 創建名爲rest-client.private.env.json 或者 http-client.private.env.json, 看文件名你應該也猜到這是保存敏感數據的,比如密碼,token等,該文件默認是被加入到 VCS 的 ignore文件中的,同時優先級高於其他環境文件, 也就是說,該文件的變量會覆蓋其他環境文件中的變量值

裏面的文件內容就像這樣

{
  "dev": {
    "host": "localhost",
    "port": 8081,
    "identifier": "tanrgyb",
    "password": "iloveu"
  },
  "prod": {
    "host": "dayarch.top",
    "port": 8080,
    "identifier": "admin",
    "password": "admin"
  }
}

運行一下我們編寫的請求吧:

IDEA自動識別多個環境,這樣就可以輕而易舉的切換環境,使用不同的變量值了(這皮鞋,你說亮不亮,還有更亮的)

巧用 response handler 腳本

上面提到,我們要讓登錄成功後的所有請求都自動攜帶成功返回的 Token,這樣不用我們每次都手動將其添加到header中,同樣有兩種方式將腳本插入到請求中

  • 內嵌方式

GET host/api/test

> {%
response 腳本
%}
  • 外部文件方式(就是將內嵌的腳本抽離出到文件中)

GET host/api/test

> scripts/my-script.js

以登錄返回獲取的token設置到變量中爲例,看代碼:

POST http://{{host}}:{{port}}/login
Content-Type: application/json
Accept: application/json

> {%
client.global.set("auth_token", response.body.result.token);
 %}

注意

response.body.result.token 是我按照我登錄返回的數據結構寫的,不同結構不一樣,你也可以是這樣的 response.body.token , response.body 之後根據你的數據結構發揮吧

我還是不放心,把我的登錄返回結構(項目中怎樣設計這種結構,可以參考之前寫的Springboot返回統一JSON數據格式是怎麼實現的?)粘貼在此處吧,這回理解了吧?

接下來我們就可以愉快的在其他請求上攜帶這個 Token 了

注意

這裏的Authorization 類型,大家根據自己的實際情況做修改,比如:Authorization:  Bearer {{auth_token}}

以上這些已經滿足我的日常使用,沒有進一步瞭解更多,更多關於 Response 腳本的用法請大家查看官網 HTTP Response reference吧

你以爲到這裏結束了(OMG),還有香料需要和大家分享,搭配上面功能使用更棒哦

輔助功能說明

RestfulToolkit

RestfulToolkit 同樣是個插件,在插件市場搜索安裝即可

安裝了這個插件後,打開側邊欄,項目的所有接口信息都會展現在此處:

我常用的功能就是把指定接口生成的JSON數據拷貝到 HTTP request 文件中,免去手寫的麻煩了,你說方便不?

除此之外,使用快捷鍵 cmd+\, 可以根據關鍵字快速找到接口,回車迅速到達代碼接口位置,這也是帶來了極大的便利

Live Template

項目中請求內容各有不同,IDEA標準提供的GET POST 請求案例可能還不能滿足我們的需求,這時我們就可以利用 Live Template 定製自己的模版,迅速生成request 內容,像這樣:

JSON Viewer

JSON Viewer是一款 Chrome瀏覽器插件,在瀏覽器 Omini-box 中輸入 json-viewer + Tab, 粘貼json在此處,就可以對json數據進行格式化了

打開開發者工具,在Network下雙擊某個HTTP請求,會自動在 new tab下格式化返回的json數據,免去了粘貼數據然後格式化的煩惱

關於自測接口的乾貨我抖的差不多了,抖抖更健康

發佈了75 篇原創文章 · 獲贊 79 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章