你有一個思想,我有一個思想,咱們交換後,一我的就有兩個思想html
If you can NOT explain it simply, you do NOT understand it well enough前端
現陸續將Demo代碼和技術文章整理在一塊兒 Github實踐精選,方便你們閱讀查看,以爲不錯,還請Star🌟git
抗擊疫情,在家辦公。工做照常幹,領導須要幾個新功能接口開發。之前在公司辦公,一般開發完的功能沒什麼問題,暴露出 Swagger 接口文檔,直接找旁邊的前端大人聯調測試了github
當下,君在長江頭,我在長江尾,夜夜思君不敢出門見君啊,一切測試全交給本身吧,web
雖然想念前端,可是在家辦公也絕對是和在公司辦公同樣同樣的,高效不(qu)摸魚面試
在多個產品線上來回穿切換着開發功能,之前用Postman的場景是這樣的:spring
實際遠遠不止這幾個文件夾來歸類多個產品線的接口,Postman的功能很是強大,可是面對如下這些情況時,我以爲調試一個接口太麻煩了 (這裏不討論工具的好壞,工具是幫助咱們提升效率的,每一個人的需求也不同,我只說明我我的遇到的一些狀況,不喜請勿噴)json
無心間發現 IntelliJ IDEA 的 HTTP Client
工具恰好能解決我上面提到的一些問題,簡單的說就是能直接在 IDEA 的代碼編輯器中 建立,編輯,執行
HTTP請求,就像這樣(若是你心動了,請繼續向下看吧):api
因而,去官網查看一番做出以下整理:瀏覽器
HTTP Client 是 IDEA 默認綁定好並啓用的插件,若是你那裏沒有啓用,按照下圖啓用就好
點擊菜單:Tools
— HTTP Client
— Test RESTful Web Service
接下來進入下面的界面:
上圖已給出提示,REST Client 是被棄用的,點擊右側的 Convert request to new format
, 進到下面界面:
默認會建立一個名爲 rest-api.http
的文件,該文件被存儲在 Scratches 文件夾下,爲了突出主角光環,關於 Scratch Files 請官網自行查看 (繼續向下看不影響理解的),黃色框線的功能也很是有用,繼續向下看
剛剛提到的 rest-api.http
就是 HTTP request 文件,能夠經過兩種方式建立:
⇧⌘N
而後選擇 HTTP Request. (文件存放在Scratches 文件夾)若是在項目中使用,這裏推薦使用第二種方式,由於它能夠做爲項目文件,經過 Git 提交到倉庫,你們共享文件,共同維護接口請求數據,天然就不會出現調試別人接口還要導入他人數據的狀況啦
咱們模擬實際項目中場景來編輯文件
經過點擊 Add Request,選擇相應的方法就能夠編寫啦
都知道,一般寫一個完整的請求須要寫好多內容,貼心的 IDEA 給咱們提供了模版,咱們只須要在 Examples 中找模版就能夠啦,好比找 POST 請求的模版,選取合適的拷貝過去就能夠,so easy~~~
到這裏,就能夠發送基本的請求了,可是,一個項目中接口衆多,如何快速生成參數?如何快速切換端口?如何讓登陸以後的每一個請求自動攜帶成功返回的 Token?咱們須要更高級的玩法
在編寫HTTP請求時,可使用變量對其元素進行參數化。變量能夠保存請求的host、port和path、查詢參數或值、請求頭值或請求體值等.
使用變量的方式很是簡單,就用兩個大括號包圍定義好的變量就能夠了,就像這樣:
固然咱們也要有地方定義變量
環境變量須要定義在環境文件(與request文件放在同一目錄下便可)中,環境文件有兩種:
rest-client.env.json
或者 http-client.env.json
的環境文件(其實裏面就是保存 JSON 數據),該文件裏能夠定義用在整個項目上的全部常規變量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自動識別多個環境,這樣就能夠垂手可得的切換環境,使用不一樣的變量值了(這皮鞋,你說亮不亮,還有更亮的)
上面提到,咱們要讓登陸成功後的全部請求都自動攜帶成功返回的 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 一樣是個插件,在插件市場搜索安裝便可
安裝了這個插件後,打開側邊欄,項目的全部接口信息都會展示在此處:
我經常使用的功能就是把指定接口生成的JSON數據拷貝到 HTTP request 文件中,免去手寫的麻煩了,你說方便不?
除此以外,使用快捷鍵 cmd+\
, 能夠根據關鍵字快速找到接口,回車迅速到達代碼接口位置,這也是帶來了極大的便利
項目中請求內容各有不一樣,IDEA標準提供的GET POST 請求案例可能還不能知足咱們的需求,這時咱們就能夠利用 Live Template 定製本身的模版,迅速生成request 內容,像這樣:
JSON Viewer是一款 Chrome瀏覽器插件,在瀏覽器 Omini-box 中輸入 json-viewer
+ Tab
, 粘貼json在此處,就能夠對json數據進行格式化了
打開開發者工具,在Network下雙擊某個HTTP請求,會自動在 new tab下格式化返回的json數據,免去了粘貼數據而後格式化的煩惱
關於自測接口的乾貨我抖的差很少了,抖抖更健康
再次重申,不作工具黨,也沒有任何批判之意,工具只是爲了讓咱們更高效的工做,選擇適合本身的。從上面的介紹中來看,IDEA HTTP client 搭配我說的幾個輔助功能很好的解決了文章開頭說明的幾個問題,對我我的狀況來講,足矣!!
截圖碼字不易
若是你認爲本文對你有幫助,還請「在看/轉發/贊」(這就是送個人大火箭🚀,大跑車🚗,大灰機✈️)
若是你還發現了更好的功能還請補充在留言區,我回頭繼續補充這塊內容,萬分感謝
公衆號回覆「工具」,還有更精彩的等着你
加我微信好友, 進羣娛樂學習交流,備註「進羣」
歡迎持續關注公衆號:「日拱一兵」
- 前沿 Java 技術乾貨分享
- 高效工具彙總 | 回覆「工具」
- 面試問題分析與解答
- 技術資料領取 | 回覆「資料」
以讀偵探小說思惟輕鬆趣味學習 Java 技術棧相關知識,本着將複雜問題簡單化,抽象問題具體化和圖形化原則逐步分解技術問題,技術持續更新,請持續關注......