在 Apidog 中,於端點內送出請求後,Apidog 會根據端點的規格自動驗證回應是否符合 schema。驗證規則#
驗證範圍#
資料格式: 回傳內容的格式(JSON、XML、HTML、Raw、Binary、No-Content、MsgPack、Event-Stream)。
Schemas: 只有 JSON 和 XML 可以設定 schemas。關於資料結構的詳細說明,請參考 Schemas。 | 驗證項目 | 屬性類型 | 驗證提示範例 |
|---|
| 必填鍵是否存在 | All | $ should have required property "code" |
| 值類型符合規格 | All | $.data.id should be integer |
| 非 null 鍵不得為 null 值 | All | $.data.id should be integer |
| 列舉值在範圍內 | String, Integer, Number | $.data.status should be equal to one of predefined values |
| 數值在範圍內 | Integer, Number | $.data.id should be >= 0 |
| 數值符合倍數要求 | Integer, Number | $.data.quantity should be a multiple of 10 |
| 字串長度在範圍內 | String | $.data.name should not be shorter than 3 characters |
| 字串符合模式 | String | $.data.name should match pattern "^[A-Za-z]" |
| 陣列元素數量在範圍內 | Array | $.data.tags should not have more than 2 items |
下一步該怎麼做#
如果上述項目一致,將顯示「Response Data Structure validated!」。這表示實際 API 回傳值與 API 文件規格一致,無需手動驗證,並提升效率。通常有兩種類型的問題:第一種是伺服器的回應不正確,此時需要修改後端以符合規格;第二種是 API 規格不正確,需要修改端點規格。透過使用自動驗證功能,你可以省去手動撰寫腳本來驗證回應的需求。此外,當 API 規格發生變更時,驗證也會自動相應調整。驗證其他回應#
預設情況下,Apidog 會驗證端點中的第一個回應,通常是 200 回應。不過,一個端點可能會回傳多個具有不同 schemas 的不同回應。在這種情況下,你可以在驗證區域右上角選擇要驗證哪個回應。你也可以透過點擊回應前方的開關,將「validate」功能關閉。此變更僅適用於目前端點。驗證附加屬性#
隨著實際業務升級,回應中可能會新增附加屬性。在這種情況下,Apidog 允許使用者決定是否允許附加欄位。例如,有一個用於查詢使用者資訊的 API,先前的回傳欄位為 name 和 phone。因此,資料結構被指定如下:隨著業務升級,此 API 新增了 city 欄位,但 API 規格尚未更新。依據預設驗證機制,不會回報錯誤,這表示預設允許新增附加欄位。然而,在更嚴格的開發情境中,如果回傳值包含不符合定義的附加欄位,回應驗證也應回報錯誤。在此情況下,你可以依照以下步驟達成預期行為:1.
修改 API 規格中的回應。在 object 的進階設定中,將「additionalProperties」設定為「Deny」,這只會對目前 API 生效。
2.
如果你想對專案中的所有 API 禁止附加欄位,可以前往 Settings → Response Validate Settings,並關閉 Allow Objects to Have additionalProperties。
3.
完成設定後,再次送出請求時,回應驗證機制將會回報錯誤,表示不允許 additionalProperties。
驗證設定#
「Validate Response」開關預設為開啟,你可以在專案設定介面的「Verification Response Settings」中調整。此設定僅對目前專案中的所有 API 生效,且不會影響已儲存的 Endpoint Cases。如果你只需要手動斷言或後置腳本,且不需要 Apidog 驗證回應是否與 API 規格一致,可以針對特定模組停用驗證功能。驗證回應內容#
驗證回應包含「HTTP Status」、「Header」、「Body」,你可以在專案設定中的「Validate Response Content」進行調整。此設定僅對目前專案中的所有 API 生效,且不會影響已儲存的 Endpoint Cases。 Modified at 2026-06-11 10:26:02