Postman高級應用(11):可以開始對接了嗎——Mock服務

場景

通過上一節的學習我們掌握瞭如何生成併發布接口文檔,可是現實總是殘酷的。前端團隊往往不滿足於乾巴巴的接口文檔,他們需要對接真實的數據,但這樣很受限於後端開發進度,於是便有了Mock(模擬)這種東西,也就是我們平時常說的“造 假數據”。Mock並不是Postman先提出的,在沒接觸Postman之前,不少前端團還是有一些自己熟悉的Mock工具。大多數情況下,mock都是由前端團隊來驅動完成的。

利用Postman的Mock Server功能,我們可以把現成的請求模擬數據。前端請求Mock的接口地址,就能返回我們預先模擬好的數據,而不依賴於後端的開發進度。同時,還能解決在家遠程辦公而無法連接公司內網服務問題,以及開發初期由於服務不穩定引起的其他問題。

實戰

看過不少介紹Postman Mock的相關文章,它們大多數都使用創建好的集合和請求示例來Mock,而忽略了通過新建API的這種方式來Mock接口,並沒有把Mock的一些基本概念講清楚。

Postman提供的Mock Server方式有兩種:

  1. 新建API
  2. 使用工作區的集合

我們先通過新建API的方式讓大家對Mock的概念有個基本的理解。

方式一:新建API

  1. 點擊Postman主窗口左上角的New,選擇Mock Server。在彈出的新窗口中,我們可以看到有兩種創建方式,默認選擇的是第一種Create a new API。中間有個類似表格一樣的東西,有請求方法、請求路徑、響應碼、響應體這幾項,也就是說,一個標準的mock須包含以上幾項。
    我們先填寫一個API:請求方法是GET,請求路徑是test,響應碼是200,響應體是ok。值得注意的是,請求路徑前面爲什麼加了個{{url}}/?這是因爲Postman匹配路徑的時候會忽略掉前面協議和域名這一塊,而域名之後的部分纔是我們所關心的。
  2. 填完API,點下一步。我們的mock名字就叫test_mock吧。先別勾選Make this mock server private,這個我後面會解釋。完成後點創建,你會得到一個Postman分配給的網址,這個網址是以mock.pstmn.io域名結尾的,這個就是對於剛纔創建的API對應的mock地址。
    如果你不小心關掉沒保存下來也沒關係,你會發現左側多了一個集合,Postman自動爲我們剛纔填寫的API創建了一個同名的新集合。集合裏包含一個請求,請求裏包含一個示例,點開發現全是我們剛纔填寫的內容。我們點集合三角形展開詳細面板,選擇Mocks選項卡,就可以找回剛纔分配的mock地址了。不僅如此,還自動創建了一個同名的環境變量,裏面包含一個url的值,正是我們剛剛分配的mock地址。

  3. 我們打開Postman爲我們自動創建的那個請求test,運行環境選擇自動創建的test_mock(即你剛纔填寫的mock名稱),直接點運行,返回結果正是我們剛纔填入的ok值。把鼠標移動請求地址的{{url}}上,發現被替換成真正的mock地址。我們通過Code功能把請求地址拷貝到瀏覽器請求一下,發現返回結果還是我們想要的。至此,你已經成功學會了如何mock,而且對mock的概念有了基本的理解。
  4. 再講多一點,我們在地址欄後面加上/1,最終變成{{url}}/test/1,再請求一次會有什麼變化?如果把test變成test1,結果又是怎樣呢?大家可以試試。其實這裏涉及到了Mock Server的匹配算法,我們不會展開來講,先簡單理解爲支持模糊匹配,並返回最接近的請求示例響應。

方式二:使用集合

  1. 先創建一個集合,在集合裏創建一些請求,爲請求添加一個示例。如果不懂的可以先看上一節關於請求示例的添加
    注意:示例創建之後可以修改。一個請求可以包含多個示例,只會返回最符合要求的示例響應。

  2. 爲該集合添加Mock。點擊左側集合旁邊的三角形,展開詳情面板。選擇Mocks選項卡,點擊Add a mock進入打開添加窗口。操作方法跟上面一樣,只不過不需要手動填mock名稱,完成後同樣會得到一個mock地址。至於如何使用上面已經提過了,這裏不再贅述。

私有mock server

  1. 在創建mock的界面,有一項是Make this mock server private。不勾選的話,我們的mock地址公佈出去,誰都可以訪問,會造成不必要的麻煩。我們重新生成一個mock server,這次勾選設爲私有。
  2. 打開 https://go.pstmn.io/pro-api-keys ,點擊Get API key生成一個密鑰,名字可以叫使用者的名字方便管理。這裏可以看到我們所有生成的key,可以禁用或刪除。
    注意:生成的api key並不是專門用於mock server,還可以用於Postman提供的其他服務中。
  3. 如果我們直接請求會返回沒有訪問權限,這就對了,因爲我們還差最後一步。在請求的頭部加入x-api-key,再次請求即可正常返回數據。當然,這個api key我們正常應該寫在全局變量裏,比較好維護。

更多內容請閱讀《Postman高級應用》專欄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章