在現實場景中使用 API 工作時,您經常需要針對不同環境進行測試——開發、測試、預發佈 (Stage) 和生產。每個環境通常有不同的伺服器 URL、API Key 和配置值。為每個請求手動更改這些值將是乏味且容易出錯的。環境和變數 就是為了這個目的而存在的。它們允許您管理不同的配置並在多個請求中重複使用值,使您的 API 測試工作流程更高效且可維護。
1. 什麼是環境和變數?#
Apidog 中的 環境 (Environment) 代表您的 API 請求運行的特定上下文。每個 環境包含:Variables:可在環境之間更改的可重複使用值
例如,Pet Store API 在其 OpenAPI 規範中定義了兩個環境:Production:https://api.petstoreapi.com/v1 — 即時、生產伺服器
Sandbox:https://sandbox.petstoreapi.com/v1 — 用於開發的測試伺服器
當您在 Apidog 中切換環境時,您的所有請求都會自動使用為該環境定義的 Base URL 和變數值。為什麼要區分 Production 和 Sandbox?#
在現實世界的 API 開發中,保持生產和測試環境分離至關重要:Production 是服務真實使用者並處理實際資料的即時系統。在這裡犯錯可能會影響真實客戶和業務運營。
Sandbox(或測試環境)是一個安全空間,開發人員可以在這裡嘗試、測試新功能和除錯問題,而不用冒生產系統的風險。
在部署到生產環境之前,在 Sandbox 中徹底測試您的 API 整合
這種分離是軟體開發中的最佳實踐,有助於保持系統可靠性和資料完整性。變數 (Variable) 是一個佔位符,儲存您可以在多個請求中重複使用的值。與其硬編碼 API Key、Token 或 ID 等值,不如將它們儲存為變數並使用 {{variable_name}} 引用它們。例如,想像您需要建立一隻寵物,然後查詢您剛建立的寵物,最後更新該寵物。如果沒有變數,您需要手動將寵物 ID 複製並貼上到每個端點。使用變數,您可以:1.
使用 POST /pets 建立寵物,並將返回的寵物 ID 提取到變數中(例如 {{pet_id}})
2.
使用 GET /pets/{{pet_id}} 查詢寵物 — 變數會自動填入 ID
3.
使用 PUT /pets/{{pet_id}} 更新寵物 — 同樣使用相同的變數
這樣,您就不需要在每個端點中手動輸入寵物 ID 值。一旦設定了變數,只要您引用 {{pet_id}},它就會自動被使用。
2. 在 Apidog 中使用環境#
步驟 1:存取環境管理#
1.
在 Apidog 中,點擊介面右上角的 環境圖示 ≡。
2.
這將打開 Environment Management 面板。
步驟 2:建立環境#
當您匯入 Pet Store API 規範時,Apidog 可以根據 OpenAPI 規範中定義的伺服器自動建立環境。但是,您也可以手動建立環境:1.
在 Environment Management 面板中,點擊環境列表底部的 "New Environment"。
2.
輸入環境名稱(例如 "Production" 或 "Sandbox")。
3.
為預設模組設定 Base URL。對於 Pet Store API:Production: https://api.petstoreapi.com/v1
Sandbox: https://sandbox.petstoreapi.com/v1
步驟 3:在環境之間切換#
1.
查看介面右上角的 環境選擇器(在 ≡ 圖示旁邊)。
3.
選擇您想要使用的環境(例如 "Production" 或 "Sandbox")。
當您切換環境時,所有後續請求將使用所選環境的 Base URL 和變數值。
3. 在 Apidog 中使用變數#
步驟 1:建立變數#
讓我們建立一個變數來儲存寵物 ID,以便我們可以在多個請求中重複使用:1.
打開 Environment Management 面板(點擊 ≡ 圖示)。
2.
選擇一個環境(例如 "Production" 或 "Sandbox")。
3.
在 Variables 部分,點擊 "Add Variable" 或 "+" 按鈕。
4.
Initial Value: pet_1Nv0FGQ9RKHgCVdK(來自 Pet Store API 的範例寵物 ID)
Current Value:(可選 - 留空以使用初始值)
步驟 2:在請求中使用變數#
1.
打開 Pet Store API 專案中的任何端點(例如 GET /pets/{id})。
3.
在 id 的路徑參數欄位中,不要直接輸入值,而是輸入:{{pet_id}}
4.
當您將滑鼠懸停在 {{pet_id}} 上時,Apidog 將顯示變數的當前值和作用域。
5.
點擊 "Send" 執行請求。發送請求時,Apidog 將自動將 {{pet_id}} 替換為實際值 (pet_1Nv0FGQ9RKHgCVdK)。
重要區別:在 Apidog 中,{{a}} 代表將被替換為其儲存值的 變數,而 {a} 代表 API 規範中的 路徑參數。在端點路徑 /pets/{id} 中,{id} 是 API 規範中定義的路徑參數佔位符。
當為此參數填寫值時,您可以使用 {{pet_id}} 來引用變數,該變數將在發送請求時被替換為實際的寵物 ID 值。
步驟 3:查看實際請求#
1.
在回應面板中,切換到 "Actual Request" 分頁。
2.
您將看到發送的實際 URL,其中所有變數都已替換為其值。
例如,如果您的端點路徑是 /pets/{{pet_id}} 且 Base URL 是 https://api.petstoreapi.com/v1,實際請求 URL 將是:https://api.petstoreapi.com/v1/pets/pet_1Nv0FGQ9RKHgCVdK
4. 實際範例:跨環境測試#
讓我們透過使用 Pet Store API 的兩個環境來演練一個實際範例:場景:獲取寵物資訊#
1.
Base URL: https://api.petstoreapi.com/v1
變數 pet_id: pet_1Nv0FGQ9RKHgCVdK
2.
Base URL: https://sandbox.petstoreapi.com/v1
變數 pet_id: pet_1Nv0FGQ9RKHgCVdK(用於測試的相同寵物 ID)
3.
打開 GET /pets/{id} 並使用 {{pet_id}} 作為路徑參數。
請求發送到:https://api.petstoreapi.com/v1/pets/pet_1Nv0FGQ9RKHgCVdK
4.
切換到 "Sandbox" 環境(使用下拉選單)。
相同的請求現在發送到:https://sandbox.petstoreapi.com/v1/pets/pet_1Nv0FGQ9RKHgCVdK
這演示了環境如何使針對不同伺服器測試相同的 API 變得容易,而無需修改您的請求。
5. 變數作用域#
Apidog 支援不同作用域的變數,每個作用域都有特定的用途:Global Variables (全域變數):在專案或團隊中的所有請求、腳本和環境之間共享
Environment Variables (環境變數):特定於環境(如 Production 或 Sandbox)
Module Variables (模組變數):特定於模組(一組相關的端點)
Local Variables (區域變數):僅在單個請求執行期間存在的臨時變數
當具有相同名稱的變數存在於多個作用域中時,較窄的作用域優先。優先順序為:local > data > environment > module > global。對於大多數用例,環境變數 是最佳選擇,因為它們允許您在不同環境中為同一變數設定不同的值(例如,Production 與 Sandbox 的不同 API Key)。
6. 初始值 vs 當前值#
Initial Value (初始值):與您的團隊共享並在裝置之間同步的預設值。這對協作很有用。
Current Value (當前值):僅儲存在您電腦上的本地個人值。這對於儲存您不想共享的敏感資料(如個人 API Key 或 Token)很有用。
如果您不設定當前值,變數將使用初始值。如果您設定了當前值,它將覆蓋初始值,僅供您本地使用。
7. 關鍵重點#
環境 代表不同的上下文(生產、測試等),具有自己的 Base URL 和變數。
變數 是可重複使用的佔位符,儲存您可以使用 {{variable_name}} 引用的值。
切換環境會自動更新所有請求的 Base URL 和變數值。
使用 環境變數 在不同環境中為同一變數設定不同的值。
變數可用於請求 URL、參數、標頭和請求 Body 中。
初始值 與您的團隊共享;當前值 是個人且僅限本地的。
環境和變數使您的 API 測試工作 流程更高效且可維護。
現在您了解如何使用環境和變數,您可以有效地跨不同上下文測試您的 API。在下一篇文章中,我們將探討如何 串聯多個端點——按順序組合多個 API 請求以完成實際任務。 Modified at 2025-12-29 09:35:19