為何需要使用到Mock?
可參考這篇[面試][後端]在正式 API 完成前,如何讓要串接的工程師不要空等?
不只是前端可能會遇到要等後端API完成,有時候後端要與其他Server對接API拿資料時,也會使用到。
當不只是一個部門再開發時,可能需要與其他部門合作,等待對接API資料時,也能有效提高開發速度,避免在那等來等去的。
建立 Mock Server
建議勾選儲存 mock server URL 到環境變數的選項。
創建成功左方會新增一個Mock及mock server URL
點擊左方的Environments會有剛才建立的Mock Server Name,會自動將mock server URL帶入到url內,
後續只要打{{url}}就會取得資訊。
設計 Mock Server Response
- 到Collections的分頁
- 找到剛剛初始化的 Request,{{url}}會自動帶入
- 環境變數右上角請選擇剛剛建立的「User」
- 按下Send後
- 下面的Response一片空白是正常的,因為還沒設定 Mock Server Response
左側 Request 下面有一個「Default」,它就是用來自訂Response example,
最下方改為Json輸入完後儲存:
{
"id":1,
"user": "bocky"
}
回到Request,按下Send後,Response會跟剛剛填寫Json相同:
response 給隨機資料
Postman 本身就有提供給隨機資料的參數,主要在 example response 那邊把固定值改填參數就行,在 文件 中給的範例是這樣:
{
"name": "{{$randomFullName}}",
"userName": "{{$randomUserName}}",
"location": "{{$randomCity}}",
"company": "{{$randomCompanyName}}",
"jobTitle": "{{$randomJobTitle}}",
"updatedAt": "{{$timestamp}}"
}
收到的 response 就會像這樣:
{
"name": "Mrs. Dana Berge",
"userName": "Natalie.Moen85",
"location": "South Orlando",
"company": "Bergstrom, Schultz and O'Conner",
"jobTitle": "Forward Data Manager",
"updatedAt": "1674070363"
}
Postman 有的隨機參數官方都整理在這:Dynamic variables
依狀況返回不同的Response
通常在不同狀況會有不同的Response,例如成功或失敗。
成功/失敗的返回方式
再新增一個Explore為失敗的UserNume(success)。
當data為success時,返回:
{
"status": "success",
"msg": "成功",
"data": {
"name": "{{$randomFullName}}",
"userName": "{{$randomUserName}}",
"location": "{{$randomCity}}",
"company": "{{$randomCompanyName}}",
"jobTitle": "{{$randomJobTitle}}",
"updatedAt": "{{$timestamp}}"
}
}
再新增一個Explore為失敗的UserNume(Error)。
當data為error時的Response為
{
"status": "error",
"msg": "失敗",
"data": {}
}
測試成功Response:
測試失敗的Response: