前言

在開發時應該很多時候都需要跟第三方合作,大多數的時候都是用 API 的方式串接,所以都會先談好介接的格式,像是傳入的資料要用 JSON 或是 XML 等, Http Method 要用 GET, POST, PUT, DELETE, PATCH ,但是當這些規格都談完的時候要進入開發的時候你就會需要一個 Dummy API 可以回應你一個罐頭訊息讓你可以在開發時不會因為對方還沒好就讓你的開發無法進行。

不過,若你手邊有 POSTMAN 的話這個需求可以很輕易的做到。

前製準備

  • 安裝 POSTMAN
  • New 一個 Collection

new collection

  • New 一個 request

new request

設定罐頭訊息內容

在設定罐頭訊息之前,會需要先有一個 request,所以點擊 request 之後,就看到畫面的右上方的 Examples 並點擊下去。

Add Example

點擊後就可以進入編輯。底下有一個很大的輸入框叫 Example Response,它可以輸入 Body, Header, Status

BodyHeaserStatus
回應的內容,這邊將會是去打 Mock Api 時的回應內容這邊就是打 Mock Api 時他的回應 Header 可以不予填寫就是回應時的Http Status Code 像是 500 Internal Server Error 或是 200 OK, Response Status Codes 可以參考這裡

Save Example

設定完這些罐頭訊息後內容的準備就算是 OK 了。

Mock Collection

設定完罐頭訊息後,就是要將這個 request 可以變成 Mock Api 讓呼叫端去打。所以接下來就要在 POSTMAN 中進行 Mock Server 的設定。

Mock Server

按下 create a mock server 按鈕後就可進入設定頁面

Mock Server Settings

在設定頁面中有名稱來作為識別使用,剩下的 Current Tag 跟 environment 的設定可以視情況調整。而最底下的 checkbox: Make this mock server private 則是一個安全的保障,因為預設這個 mock server 將會是公開的,所有知道 URL 的人都可以使用這個 Mock server 來取得回應的格式,若勾起來的話,你的 request header 需要帶上一個 x-api-key 這樣它才會回應設定好的內容,否則就會只是一段錯誤訊息。

若使用的是公開的 mock server 的話那設定就到這邊為止,若是使用 private mock server 的話就請繼續往下設定。

Private Mock Server

Dashboard

這跟他的說明差距很大,所以請先點選 “Back to workspace”

Dashboard 2 -POSTMAN/Dashboard_2.jpg)

你應該會看到這個潔淨的畫面,但接下來要選的不是 Mocks 這個頁籤,而是旁邊的 Integrations 進入後畫面大概長這樣:

Intergrations

點擊 Detail 按鈕後就可以進入 POSTMAN Api Key 的管理頁面。

Get Api Key

新增 Api Key 的畫面相當簡潔

Get Api Key part 2

新增完後你就可以拿到一筆 Api Key 的值,然後你就可以拿著這個去打 Mock Api 了~

不過需要注意的是,若你的 POSTMAN 是用 Free Account 的話就有使用限制。

一個月 1000 次 mock server 呼叫,一分鐘 60 次的呼叫上限。

你的回應 Header 會有以下三個值來表示:

  • X-RateLimit-Limit
  • X-RateLimit-Remaining
  • X-RateLimit-Reset

這是在 private mock server 使用上需要注意的點!

補充

若你同一個 Api 有多個 Examples 而且希望 Mock Server 都要針對此有所回應,那麼這個也能很好的滿足這個需求,只要你的 Http status code 不一樣就好,而在呼叫時 request header 須額外帶上 x-mock-response-code 值帶上 http status code 的數值即可 (ex. 200, 201, 401, 500…),當然若 Examples 的 http status code 相同但是回應內容不同的話,就無法使用這個方法了…

不過這個方式倒是可以很好的模擬同一個 Api 不同 status code 的回應方式。

參考連結