重點摘要
- 01由 Ajv 提供支援,最廣泛使用的 JavaScript JSON 結構描述驗證工具 — 在 Node.js、Fastify 和大多數 JS 工具鏈中通過的內容在此也會通過。
- 02一次報告每個驗證錯誤(allErrors 模式),而不只是第一個失敗。
- 03每個錯誤包括失敗欄位的 JSON 指標路徑,用於快速導航。
- 04結構描述和資料完全在您的瀏覽器中執行 — 無上傳。
為什麼根據結構描述驗證 JSON?
JSON 結構描述是描述 JSON 文件形狀的標準方法 — 必填欄位、允許的類型、值約束、嵌套物件結構。在裝載到達生產之前根據結構描述進行驗證可在類型不匹配、缺少必填欄位和約束違規便宜時捕獲它們。
最常見的使用案例是測試 API 要求和回應本體、驗證設定檔、檢查 OpenAPI 範例物件,以及根據已知結構驗證資料匯出。Handytool 的驗證工具使用 Ajv — 事實上的 JavaScript JSON 結構描述程式庫,在 Node.js 本身內使用 — 所以此處的結果與您的後端看到的相符。
如何根據結構描述驗證 JSON
- 01
貼上您的 JSON 結構描述
在左側面板貼上結構描述。這可以是 Draft 7、2019-09 或 2020-12 結構描述,具有類型、屬性、必需、項目、anyOf、allOf — 任何標準 Ajv 支援的關鍵字。
- 02
貼上您的 JSON 資料
在右側面板貼上您想驗證的資料文件。這是執行個體 — API 要求本體、設定物件、匯出記錄或 OpenAPI 規範的單一範例。
- 03
點擊 [驗證]
Ajv 使用 allErrors: true 執行驗證,這表示它收集每個失敗,而不是在第一個失敗時停止。
- 04
檢查錯誤清單
每個錯誤顯示失敗值的 JSON 指標路徑(例如 /user/email)、失敗的關鍵字(類型、必需、最小值)和可讀的訊息。修復每個並重新驗證。
開發者使用 JSON 結構描述驗證的內容
- 01REST API 要求本體 — 在傳送之前確認裝載符合端點的預期形狀。
- 02OpenAPI 規範範例物件 — 根據內聯結構描述元件驗證每個範例。
- 03設定檔 — 確保必填鍵存在且值的類型正確。
- 04資料管道記錄 — 發現資料生產者和消費者之間的結構漂移。
- 05表單提交裝載 — 測試前端驗證是否反映後端結構描述約束。
- 06第三方 Webhook 本體 — 確認文件結構描述符合實際裝載。
私密驗證,無需伺服器
Ajv 完全在您的瀏覽器中執行。結構描述和資料都不被傳送到任何伺服器 — 您可以安全地驗證描述內部資料結構的結構描述和包含敏感欄位值的資料物件。
驗證工具支援 JSON 結構描述 Draft 6、7、2019-09 和 2020-12。最常見的 Draft 7 在現有程式碼庫中,涵蓋所有日常關鍵字:類型、屬性、必需、項目、最小值、最大值、模式、列舉、anyOf、allOf、oneOf、not 和 $ref。
JSON 結構描述驗證工具常見問題
支援哪些 JSON 結構描述 Draft?
Ajv 支援 Draft 6、7、2019-09 和 2020-12。Draft 7 在現有程式碼庫中最常見,涵蓋所有標準關鍵字。
我的 $ref 結構描述為什麼不解析?
外部 $ref URL 在此純瀏覽器工具中未提取。使用 $defs 和本地 JSON 指標(例如 #/$defs/MyType)內聯所有參考結構描述。
我的結構描述或資料上傳到任何伺服器嗎?
不會。Ajv 完全在您的瀏覽器中執行 — 結構描述和資料都留在您的裝置上。
我可以用這個驗證 OpenAPI 3 規範嗎?
您可以驗證個別結構描述元件和範例物件。驗證整個 OpenAPI 文件需要了解規範中繼結構描述的專用 OpenAPI 驗證工具。
為什麼我看到多個錯誤而不只是第一個?
驗證工具配置了 allErrors: true,這使 Ajv 收集每個失敗,而不是在第一個失敗時停止。這是有意的 — 您可以在一個過程中修復所有問題,而無需進行重複驗證嘗試。