نکات کلیدی
- 01توسط Ajv قدرتگرفته، گستردهترین JavaScript JSON Schema validator — آنچه در اینجا pass میکند Node.js، Fastify و بیشتر JS toolchains میں pass میکند.
- 02هر validation error را در یک بار گزارش میکند (allErrors mode)، نه فقط اولین failure.
- 03هر error JSON Pointer path را برای navigation سریع شامل میکند.
- 04هم schema و هم data کاملاً در مرورگر شما اجرا میشود — هیچ چیز آپلود نشده.
چرا JSON علیه Schema تأیید کنیم؟
JSON Schema روش استاندارد برای توصیف شکل یک document JSON است — fields لازمی، انواع مجاز، محدودیتهای مقدار، ساختارهای object nested. تأیید علیه schema قبل از اینکه payload تولید به دست آید type mismatches، missing required fields و constraint violations را early گرفت میکند، زمانی که ارزان هستند تا fix کنند.
بیشتر موارد استفاده رایج request و response bodies API را تأیید میکنند، configuration files را تأیید میکنند، OpenAPI example objects را بررسی میکنند و data exports را بر علیه ساختار شناخته شده تأیید میکنند. تأییدکننده Handytool از Ajv استفاده میکند — کتابخانه JavaScript JSON Schema de-facto، درون خود Node.js استفاده شده — بنابراین نتیجه اینجا آنچه backend شما خواهد دید مطابقت دارد.
نحوه تأیید JSON علیه Schema
- 01
JSON Schema خود را جا دهید
Schema را در پنل سمت چپ جا دهید. این میتواند Draft 7 یا 2019-09 یا 2020-12 schema با type، properties، required، items، anyOf، allOf — هر کلیدواژه Ajv-پشتیبانی شده باشد.
- 02
دادههای JSON خود را جا دهید
Document دادهای را که میخواهید تأیید کنید در پنل سمت راست جا دهید. این instance است — یک request body API، یک config object، یک export record یا یک مثال تک از OpenAPI spec شما.
- 03
بر روی Validate کلیک کنید
Ajv validation را با allErrors: true اجرا میکند، به معنی این که هر failure را جمع میکند تا اولی یک را stop کند.
- 04
لیست خطا را بررسی کنید
هر error JSON Pointer path را به مقدار failing (مثلاً /user/email)، failing keyword (type، required، minimum) و human-readable message نشان میدهد. هر یکی را fix کنید و مجدد تأیید کنید.
آنچه توسعهدهندهها با JSON Schema تأیید میکنند
- 01REST API request bodies — قبل از ارسال تأیید کنید که payload شکل expected endpoint را مطابقت میدهد.
- 02OpenAPI spec example objects — هر مثال را بر علیه inline schema component تأیید کنید.
- 03Configuration files — تأیید کنید که keys لازمی موجود هستند و مقادیر نوع درست هستند.
- 04Data pipeline records — structural drift بین data producers و consumers را spot کنید.
- 05Form submission payloads — test کنید که frontend validation backend schema constraints را آینه میکند.
- 06Third-party webhook bodies — تأیید کنید schema مستند شده actual payload را مطابقت میدهد.
تأیید خصوصی، بدون سرور لازم
Ajv کاملاً در مرورگر شما اجرا میشود. نه schema نه data برای هیچ سرور ارسال نمیشود — میتوانید بهطور ایمن schemas را تأیید کنید که ساختارهای داده درونی را توصیف میکنند و objects دادهای که شامل مقادیر field حساس هستند را بهطور ایمن تأیید کنید.
تأییدکننده JSON Schema drafts 6، 7، 2019-09 و 2020-12 را پشتیبانی میکند. draft رایجترین در wild Draft 7 است، که تمام کلیدواژههای روزمره را پوشش میدهد: type، properties، required، items، minimum، maximum، pattern، enum، anyOf، allOf، oneOf، not و $ref.
سؤالات متداول JSON Schema Validator
کدام JSON Schema drafts پشتیبانی میشوند؟
Ajv drafts 6، 7، 2019-09 و 2020-12 را پشتیبانی میکند. Draft 7 رایجترین در existing codebases است و تمام کلیدواژههای استاندارد را پوشش میدهد.
چرا $ref schema من resolve نمیشود؟
خارجی $ref URLs در این ابزار فقط مرورگر fetch نمیشوند. تمام referenced schemas را با استفاده از $defs و JSON pointers محلی مانند #/$defs/MyType inline کنید.
آیا schema یا data من برای هیچ سرور آپلود میشود؟
نه. Ajv کاملاً در مرورگر شما اجرا میشود — هم schema و هم data در دستگاه شما میمانند.
آیا میتوانم از این برای تأیید OpenAPI 3 spec استفاده کنم؟
میتوانید individual schema components و example objects را تأیید کنید. تأیید کل OpenAPI document یک OpenAPI validator مختص نیاز دارد که spec meta-schema را درک میکند.
چرا من چند خطا به جای فقط اولی میبینم؟
تأییدکننده با allErrors: true پیکربندی شده است، که Ajv را ایجاب میکند هر failure را جمع کند تا اولی یک stop کند. این intentional است — میتوانید تمام مسائل در یک pass fix کنید تا جای مکرر validation attempts.