Postman 這套工具使用率滿高的,當對方API尚未完成,或是需先提供API給對方測試,
使用mock server頂著用,會是一個不錯的選擇,由於設定方式有幾種選擇,紀錄一下。
建立 Mock Server
來到 postman 介面,點到 mock servers 項目,上方有加號可以新增
點選「+」號後,會進入設定步驟,如下圖,大概會有兩個步驟
第一步驟:選擇要哪個 collection 使用 mock,而 collection 後續會設定實際回傳給使用者的內容
第二步驟:設定該 mock server 的相關參數,包含名稱、是否 private...等等
第一步驟:
這邊有兩個頁籤,第一個頁籤「Create a new colleciton」是建立新的 collection,並設定至少
一筆 Request,第二個頁籤「Select an existing collection」為若你已經有既有 collection 那可以選擇哪
些 collection 要使用這個 mock server;這邊嘗試建立新的 collection,相關設定如下圖,
建立一筆 Get Method 的Request,url 先設定為 /heroes/ 後續會修改,Response Code
為200,Response 內容為為 json 格式 {"id":1,"name":"打野"}
切換到第二個頁籤「Select an existing collection」,畫面上會列出目前 workspace 下已存在的
collection,如下圖
由於我們要使用新建立的collection,所以切回來 「Create a new colleciton」頁籤,並且點選「next」來到下個步驟。
來到第二步驟,如下圖,其中 Mock server name 是一定要是設定的,這邊這邊 MS_HeroesApi,
而環境參數可以後續再設定,這邊先提一下環境變數項目各有哪些
第一項:是否要將等等建立的 mock server 的 url ,儲存至 environment 中,這樣你就不用手動加入
第二項:是否要將 mock server 設定為私有(不公開),若設定為私有後面有介紹如何取得 api-key
第三項:是否模擬網路延遲問題
設定完成後,點選右下方的「Create Mock Server」按鈕,就完成建立,並且畫面會來到下圖,
其中,包含我們剛剛建立的 mock server 項目MS_HeroesApi 在清單中,右方頁籤下方有該
mock server 的 url ,下方也有方便複製的按鈕,而右上方 view collection docs 按鈕,可以
檢視該 mock server 有被哪些 collection 使用的內容
若你要檢視,剛剛上述的設定,可以點選右方的「...」然後選「 Edit」,畫面就會來到下方,可看到之前設定的內容
切回剛剛頁籤,複製 url
此時左方功能選項(如下圖),切到 Collections 項目,並且選取 MS_HeroesApi 下面的 GET 項目,
右方可看到 {{url }},並將剛剛複製的 url 內容貼上
這邊來到 [Get] /heroes/ 裡面的 default 項目(這個名稱可以改名),而這個項目是說,在 heroes 這
個request 預計想要回傳(response)的內容,而[Get] /heroes/ 可以有多個回傳案例
由於,我們期望回傳為json 格式,所以 headers 需指定application/json 以及 status code 設為200,
如下圖
可以使用postman 檢視送出結果,切回 [Get] /heroes/ 項目,並且點選 Send 按鈕,可以看到下方
回傳的結果會是 Default 設定的內容
嘗試修改 Default 名稱為 1_Record
設定 1_Record 的Response 內容為 「中路」
回到 [Get] /heroes/ ,點選 Send 檢視結果
這邊有個小地方需要注意,上面有提過,由於 [Get] /heroes/ 是可以有多個回傳案例,所以,送出
request 時,需要哪個案例回傳值,就是 url 的設定,要跟該案例的 url 一樣,
這邊條整 [Get] /heroes/ 的url ,後面加個 error 參數,送出就會回傳錯誤
調整 1_Record 案例,將url 也加上error 參數,並且回傳內容 name = 錯誤
回到 [Get] /heroes/,送出檢視回傳值
以上建立 Mock Server 的介紹,其實也可以透過 Collection 建立 mock server ,只要在已存在的
Colleciton 上點選滑鼠右鍵,即可看到 Mock Collection(如下圖),然後就會進入類似剛剛的設定
畫面,這邊就不重覆
實際呼叫 Api
建立mock server 完後,也設定了一個[Get] /heroes/ 的api,實際如何快速測試api
來到 mock servers ,點選要測試的 server,如下圖,說明一下數字區塊代表的意義
第1點:呼叫該API 的程式範例選項切換,可以選擇要用哪種程式實作的範例
第2點:該mock server 被哪些 collection request 使用,都會列在這裡
第3點:該collection request 下面有哪些 example,可以看到有 1_Record
第4點:該collection request 呼叫後的 Response 值
再看一下,第1點的選項有哪些,支援滿多語言的
若要檢視範例內容或是複製內容,可以點選中間的 click to expand 或是複製按鈕
使用 jsbin 呼叫 api
使用 cUrl 呼叫 api
Make mock server private
mock server 預設是公開的,只要知道 url 就可以呼叫,所以通常會設定為 private,下面是相
關設定步驟首先同樣來到 Postman 的 mock servers ,在清單中點選要設定的 server,點選右
方「...」再點 Edit
進入編輯畫面,這畫面前面有看過,把 Make mock server priate 選項打勾後並儲存
設定之後要取得 api key,需進到下方頁面,也可以透過上方畫面有 藍色連結可以開啟
來到這個網頁:https://go.postman.co/settings/me/api-keys
點選後會來到登入畫面
登入後,若沒有建立過任何 api-key,應該會是下方畫面
點選 Generate API Key 按鈕,畫面中先輸入要管理的API 名稱
再次點選 Generate API Key,就會看到以下畫面,可先點選右方的複製,再關閉
記得一定要先複製,因為關閉後就看不到完整的key 值(可以因為安全性吧)
關閉後,此時會看到清單上會有一筆
值得一提的是, 預設 api 有效期限為 60 天,最多180天,可在 API Key Settings 中看到
接下來,需要將 x-api-key 加入至 Request header 中,這訊息稍早畫面有提到,如下圖
使用 jsbin 試試看,先試試沒有夾帶 x-api-key,送出後會回傳錯誤訊息,說明找不到
加上 x-api-key 後
使用 postman 測試,若沒有 api-key 會錯誤
加上 x-api-key 後
以上就是建立 mock server 的相關設定,但在免費的使用者,API Keys 管理介面有點陽春,
沒有記載該筆key 是哪時候會到期日?若Key快到期能否設定通知機制?等等...,
可能產生的 key 還是需要另外記載確保,爆掉...
參考:
沒有留言:
張貼留言