[TOC] #### 1. 前言 ---- 本文章只列舉 apipost 部分最常用的功能,更多文檔內(nèi)容請(qǐng)去官網(wǎng)查看文檔 apipost 官網(wǎng): [https://www.apipost.cn](https://www.apipost.cn), 文檔入口如下圖所示: ![](https://img.itqaq.com/art/content/8138a86d587c98abba00b9bcb210e8e5.png) #### 2. 變量的作用和類型 --- 變量的作用: 對(duì)于一些常見的參數(shù),我們可以將其定義成變量,以便達(dá)到一處改動(dòng),全部改動(dòng)的目的 變量的四大類型: 環(huán)境變量、全局變量、mock 變量、系統(tǒng)變量 #### 3. 預(yù)定義環(huán)境變量 --- 通過環(huán)境變量管理器設(shè)置預(yù)定義變量 環(huán)境變量: 根據(jù)選擇的環(huán)境不同,變量的值隨環(huán)境的切換變化 應(yīng)用場(chǎng)景: 接口前綴使用環(huán)境變量定義,方便切換正式環(huán)境和開發(fā)環(huán)境時(shí)的接口地址 后端開發(fā)者在調(diào)試、編寫接口文檔時(shí),接口地址前綴一般情況下都是相同的 比如: ``` http://tp6.cy/api/login/index // 登錄接口 http://tp6.cy/api/user/getMine // 獲取用戶信息 http://tp6.cy/api/article/getLists // 獲取文章列表 ``` 定義環(huán)境變量 api : `http://tp6.cy/api/` ![](https://img.itqaq.com/art/content/e8f6801cfb90122a5e3823b0866f3016.png) 然后就可以將接口地址中 `http://tp6.cy/api/` 使用 api 變量替代,使用變量需要使用 `{{}}` 包裹 ![](https://img.itqaq.com/art/content/650ab7148149836fdd0d171b33366e99.png) #### 4. 內(nèi)置Mock變量 --- 在 apipost 客戶端的下方可以通過點(diǎn)擊來查看內(nèi)置的 mock 變量 ![](https://img.itqaq.com/art/content/d293a0122e04f051052746abe80db908.png) apipost 支持請(qǐng)求參數(shù)直接引用 mock.js 變量,如下圖所示: 請(qǐng)求地址攜帶一個(gè)參數(shù),要求是 1-100 的自然數(shù) ![](https://img.itqaq.com/art/content/1762db63b034f9a2b1b1ab4102bdaee5.png) #### 5. 內(nèi)置系統(tǒng)變量 --- apipost 內(nèi)置了一些系統(tǒng)變量: request 對(duì)象: 一個(gè)請(qǐng)求的所有請(qǐng)求參數(shù)組成的對(duì)象。一般用于前執(zhí)行腳本 response 對(duì)象: 一個(gè)請(qǐng)求的所有響應(yīng)參數(shù)組成的對(duì)象。只能用于后執(zhí)行腳本,因?yàn)榘l(fā)生了請(qǐng)求后才有響應(yīng) navigator: navigator 對(duì)象包含有關(guān)瀏覽器的信息,同正常瀏覽器的 navigator 對(duì)象屬性相同 **測(cè)試預(yù)執(zhí)行腳本、后執(zhí)行腳本觸發(fā)時(shí)機(jī)** ![](https://img.itqaq.com/art/content/508f1554bf725c0607305a779141c19d.png) ![](https://img.itqaq.com/art/content/0807f6dc57e3e087a2bb59078a002c11.png) 通過控制臺(tái)查看數(shù)據(jù)輸出 ![](https://img.itqaq.com/art/content/d5cc1bf966384a275e69e6fba381a4c3.png) #### 6. 預(yù)執(zhí)行腳本、后執(zhí)行腳本 --- ##### 預(yù)執(zhí)行腳本應(yīng)用場(chǎng)景: 設(shè)置變量、查看請(qǐng)求信息 查看系統(tǒng)變量 request 對(duì)象數(shù)據(jù),其中包含請(qǐng)求地址、請(qǐng)求類型、超時(shí)時(shí)間、請(qǐng)求頭、請(qǐng)求參數(shù)等信息 ``` console.log("---- 預(yù)執(zhí)行腳本開始 ----") console.log(request) console.log("---- 預(yù)執(zhí)行腳本結(jié)束 ----") ``` ![](https://img.itqaq.com/art/content/0895e159952f5dc27c9dc677f5cffc1e.png) ##### 后執(zhí)行腳本應(yīng)用場(chǎng)景: 小程序接口的模擬登錄 小程序中前端開發(fā)者使用 wx.login 調(diào)用服務(wù)器端接口后會(huì)返回一個(gè) token 字段,請(qǐng)求其他接口需要在請(qǐng)求頭中攜帶這個(gè)字段值 而后端開發(fā)者需要使用 apipost 來調(diào)試需要 token 值的接口,如果在每個(gè)接口都手動(dòng)指定 token 值會(huì)特別麻煩,此時(shí)可以利用 **后執(zhí)行腳本 + 全局參數(shù)** 來更好的處理這個(gè)問題。即: 調(diào)用模擬登錄后將 token 值,存儲(chǔ)到環(huán)境變量中,然后通過設(shè)置 **全局參數(shù) Header 或 目錄公用 Header **來實(shí)現(xiàn)每個(gè)接口自動(dòng)攜帶 token 值 假設(shè)接口返回值是以下兩種情況: ``` {"code":201,"msg":"登錄失敗"} {"code":200,"msg":"登錄成功","data":{"user":{"id":1,"nickName":"liang"},"token":"HxApPjKIJqrfKVaQcjMw"}} ``` 后執(zhí)行腳本使用示例 ``` if (response.json.code == 200) { apt.variables.set("token", response.json.data.token); } ``` 設(shè)置全局 Header 參數(shù) ![](https://img.itqaq.com/art/content/a19bc1134e08bd729b6928d84cef5d9f.png)