API Academy
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Working with APIs
  • 歡迎
  • 目錄
  • API 學院
    • Get Started
      • 什麼是 API?
      • API 如何運作?
      • 如何呼叫 API?
      • 如何閱讀 API 文件?
      • 章節總結
    • API Fundamentals
      • API 基礎知識:概覽
      • 方法與路徑
      • 參數
      • 請求 Body
      • 回應
      • API 規格與 OAS
      • 章節總結
    • Working with APIs
      • 使用 API:概覽
      • 根據規格發送請求
      • 環境與變數
      • 串聯多個端點
      • 處理 Auth
      • 處理 API 簽名
      • 腳本介紹
      • 章節總結
    • Mocking APIs
      • Mocking API:概覽
      • Smart Mock
      • Mock 預期結果
      • Cloud Mock
      • Mock 腳本
      • 章節總結
    • Designing APIs
      • 設計 API:概覽
      • API 設計介紹
      • 建立您的第一個 API 專案
      • 分析需求並規劃您的 API
      • 設計資料模型
      • 設計端點
      • 使用組件與可重用性
      • 設定與 Auth
      • API 設計指南
      • 章節總結
    • Developing APIs
      • 開發 API:概覽
      • 設定:安裝您的 AI 程式碼助手
      • 快速入門:30 分鐘內從規格到運行的 API
      • 了解生成的程式碼
      • 使用 Apidog 測試您的 API
      • 部署:將您的 API 上線
      • 章節總結
    • Testing APIs
      • 測試 API:概覽
      • 快速入門:您的第一個測試場景
      • 整合測試與資料傳遞
      • 動態值
      • 斷言與驗證
      • 流程控制:If, For, ForEach
      • 資料驅動測試
      • 性能測試
      • 測試報告與分析
      • CI/CD 整合
      • 排程任務與自動化
      • 進階測試策略
      • 章節總結
    • API Documentations
      • API 文件:概覽
      • 發布您的第一個 API 文件
      • 自訂文件外觀
      • 給消費者的互動功能
      • 進階發布設定
      • 管理 API 版本
      • 章節總結
    • Advanced API Technologies
      • 進階 API 技術:概覽
      • GraphQL
      • gRPC
      • WebSocket
      • Socket.IO
      • Server-Sent Events
      • SOAP
      • 章節總結
    • API Lifecycle
      • API 生命周期:概覽
      • API 生命周期的階段
      • API 治理
      • API 安全最佳實踐
      • 監控與分析
      • API 版本策略
      • API 的未來
      • 章節總結
    • API Security
      • API 安全性:概覽
      • API 安全性基礎知識
      • 身份驗證 vs. 授權
      • 了解 OAuth 2.0 和 OpenID Connect
      • JSON Web Tokens (JWT)
      • OWASP API 安全 Top 10
      • 加密與 HTTPS
      • 章節總結
    • API Tools
      • API 工具:概覽
      • API 工具的演變
      • API Clients
      • 命令列工具 (cURL, HTTPie)
      • API 設計和文件工具
      • API Mocking 工具
      • API 測試工具
      • 一體化 API 平台
      • 章節總結
    • API Gateway
      • API Gateway:概覽
      • 什麼是 API Gateway?
      • API Gateway 的關鍵功能
      • API Gateway vs 負載平衡器 vs 服務網格
      • 流行 API Gateway 解決方案
      • BFF (Backend for Frontend) 模式
      • 章節總結
HomePetstore APIExplore more APIs
HomePetstore APIExplore more APIs
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
🌐 繁體中文
  • 🌐 English
  • 🌐 繁體中文
  1. Working with APIs

串聯多個端點

在現實世界的 API 工作流程中,您很少只使用單個端點。大多數任務需要一系列操作——建立資源、檢索資源、更新資源等等。每個步驟通常依賴於前一步驟的資料。
在本文中,我們將學習如何使用 Apidog 串聯多個端點,演示一個完整的工作流程:建立寵物,查詢其詳細資訊,並更新其資訊。我們將使用 變數 在請求之間傳遞資料,使工作流程無縫且自動化。

1. 工作流程:建立、查詢和更新#

讓我們使用 Pet Store API 演練一個實際場景:
1.
使用 POST /pets 建立寵物 — 這返回一個帶有 id 的寵物物件
2.
使用 GET /pets/{id} 查詢寵物詳細資訊 — 使用步驟 1 中的 ID
3.
使用 PUT /pets/{id} 更新寵物 — 修改寵物的資訊
關鍵挑戰在於每個步驟都需要前一步驟的資料。如果沒有變數,您必須手動在請求之間複製並貼上寵物 ID。使用 Apidog 的變數提取功能,這變得自動化。

2. 步驟 1:建立寵物並提取 ID#

首先,讓我們建立一隻寵物並將其 ID 提取到變數中,以便在後續請求中使用。

建立寵物#

1.
在您的 Apidog 專案中打開 "Create a pet" 端點 (POST /pets)。
2.
切換到 "Run" 分頁。
3.
在請求 Body 部分,您可以使用 Apidog 的 "Auto-generate" 功能根據 API 規範自動生成請求 Body。點擊 "Auto-generate" 按鈕,Apidog 將建立一個包含所有必需欄位的範例請求 Body。
image.png
或者,您可以手動填寫寵物資訊。例如:
{
  "name": "Luna",
  "species": "DOG",
  "breed": "Golden Retriever",
  "ageMonths": 24,
  "size": "LARGE",
  "color": "Golden",
  "gender": "FEMALE",
  "goodWithKids": true,
  "goodWithPets": true,
  "adoptionFee": 150.00,
  "description": "Friendly golden retriever looking for an active family",
  "status": "AVAILABLE"
}
4.
點擊 "Send" 建立寵物。
5.
請求完成後,您將看到類似以下的回應:
{
  "id": "pet_1Nv0FGQ9RKHgCVdK",
  "name": "Luna",
  "species": "DOG",
  "breed": "Golden Retriever",
  "ageMonths": 24,
  "status": "AVAILABLE",
  ...
}

將寵物 ID 提取為變數#

現在我們需要從回應中提取 id 並將其儲存為變數:
1.
在 Run 分頁中,向下捲動到 Post Processors 部分(在回應區域下方)。
2.
點擊 "Add PostProcessor" 並選擇 "Extract Variable"。
image.png
3.
配置變數提取:
Variable Name: pet_id
Variable Scope: 選擇 "Global Variables Shared within Project"(以便它可以在其他端點中使用)
Extraction Source: 選擇 "Response JSON"
JSONPath Expression: 輸入 $.id 以從回應中提取 id 欄位
image.png
4.
點擊 "Save" 儲存提取配置。
5.
現在,再次發送請求。請求完成後,寵物 ID 將儲存在 {{pet_id}} 變數中。
6.
您可以透過檢查回應區域中的 Console 分頁來驗證提取是否有效,該分頁將顯示確認變數已提取的日誌。
image.png
JSONPath 語法:表達式 $.id 意味著「從 JSON 物件的根獲取 id 欄位」。如果回應結構是嵌套的(例如 {"data": {"pet": {"id": "..."}}}),您將使用 $.data.pet.id 代替。

3. 步驟 2:查詢寵物詳細資訊#

現在我們已將寵物 ID 儲存在變數中,我們可以使用它來查詢寵物詳細資訊。
1.
在您的 Apidog 專案中打開 "Get a pet" 端點 (GET /pets/{id})。
2.
切換到 "Run" 分頁。
3.
在 id 的路徑參數欄位中,不要輸入值,而是輸入:{{pet_id}}
image.png
4.
當您將滑鼠懸停在 {{pet_id}} 上時,Apidog 將顯示當前值(我們在步驟 1 中提取的寵物 ID)。
5.
點擊 "Send" 執行請求。
6.
發送請求時,Apidog 將自動將 {{pet_id}} 替換為實際的寵物 ID 值(例如 pet_1Nv0FGQ9RKHgCVdK)。
請求 URL 將類似於:
https://api.petstoreapi.com/v1/pets/pet_1Nv0FGQ9RKHgCVdK
您應該在回應中收到完整的寵物詳細資訊。

4. 步驟 3:更新寵物資訊#

最後,讓我們更新寵物的資訊。這演示了如何在請求 Body (JSON) 中使用變數。
1.
在您的 Apidog 專案中打開 "Update Pet" 端點 (PUT /pets/{id})。
2.
切換到 "Run" 分頁。
3.
在 id 的路徑參數欄位中,輸入:{{pet_id}}(與步驟 2 相同)。
4.
在請求 Body 中,您可以在 JSON 中使用變數。例如,要更新寵物的描述同時保留其他欄位,您可以使用:
{
  "id": "{{pet_id}}",
  "name": "Luna",
  "species": "DOG",
  "breed": "Golden Retriever",
  "ageMonths": 24,
  "size": "LARGE",
  "color": "Golden",
  "gender": "FEMALE",
  "goodWithKids": true,
  "goodWithPets": true,
  "adoptionFee": 150.00,
  "description": "Updated: Friendly golden retriever looking for an active family. Great with children!",
  "status": "AVAILABLE"
}
注意我們在 JSON Body 中使用了 {{pet_id}}。當您發送請求時,Apidog 將用實際的寵物 ID 值替換它。
在 JSON 中使用變數:在 JSON 請求 Body 中使用變數時,請確保將字串變數用引號括起來(例如 "{{pet_id}}")。對於像數字或布林值這樣的非字串值,您不需要引號(例如,對於數字使用 {{quantity}})。
5.
點擊 "Send" 更新寵物。
6.
回應將確認寵物已使用新資訊更新。

5. 查看實際請求#

發送帶有變數的請求後,您可以查看 Apidog 是如何解析它們的:
1.
在回應面板中,切換到 "Actual Request" 分頁。
2.
您將看到發送的實際請求,所有變數都已替換為其值。
image.png
例如,如果您在路徑參數中使用了 {{pet_id}},您將在 URL 中看到實際的寵物 ID。如果您在 JSON Body 中使用了 {{pet_id}},您也會在那裡看到實際值。
這有助於除錯和確切了解發送到伺服器的資料。

6. 關鍵重點#

串聯端點 意味著使用一個請求的輸出來作為下一個請求的輸入。
使用 Post Processors 從回應中 提取變數 以捕獲後續請求所需的資料。
使用 {{variable_name}} 語法在路徑參數、查詢參數、標頭和請求 Body 中 使用變數。
JSONPath 表達式(如 $.id)允許您從 JSON 回應中提取特定欄位。
變數作用域 很重要:如果您想在不同端點之間使用變數,請使用「全域變數」。
查看實際請求 以查看變數如何被解析並驗證您的工作流程是否正常運行。

透過使用變數將多個端點串聯起來,您可以構建自動化複雜 API 操作的完整工作流程。這是建立測試場景和自動化 API 測試的基礎,我們將在未來的文章中探討這些內容。
繼續閱讀 → 處理身份驗證
Modified at 2025-12-29 09:35:19
Previous
環境與變數
Next
處理 Auth
Built with