Klíčové poznatky
- 01Poháněno Ajv, nejčastěji používaným JavaScript JSON Schema validatorem — co projde zde, projde v Node.js, Fastify a nejčastěji JS nástrojích.
- 02Hlásí všechny chyby validace najednou (allErrors režim), ne jen první selhání.
- 03Každá chyba obsahuje JSON Pointer cestu k selhání poli pro rychlou navigaci.
- 04Jak schéma, tak data běží zcela v prohlížeči — nic nenahraje.
Proč validovat JSON proti schématu?
JSON Schema je standardní způsob, jak popsat tvar JSON dokumentu — povinná pole, povolené typy, omezení hodnot, vnořené objektové struktury. Validace proti schématu, než payload dosáhne produkce, zachycuje neshody typů, chybějící povinná pole a porušení omezení brzy, kdy jsou levné na opravu.
Nejčastější případy použití jsou testování API request a response těl, validace konfiguračních souborů, kontrola OpenAPI příkladů objektů a ověření datových exportů proti známé struktuře. Validator od Handytoolu používá Ajv — de-facto JavaScript JSON Schema knihovnu, používanou uvnitř samotného Node.js — takže výsledky zde odpovídají tomu, co váš backend uvidí.
Jak validovat JSON proti schématu
- 01
Vložte svůj JSON Schema
Vložte schéma v levém panelu. To může být Draft 7 či 2019-09 či 2020-12 schéma s type, properties, required, items, anyOf, allOf — jakýkoliv standardní Ajv-podporovaný klíčové slovo.
- 02
Vložte svá JSON data
Vložte datový dokument, který chcete validovat v pravém panelu. To je instance — tělo API requestu, konfigurační objekt, záznam exportu, či jednoho příkladu z vašeho OpenAPI specu.
- 03
Klikněte na Validovat
Ajv spustí validaci s allErrors: true, což znamená, že sbírá každé selhání spíše než zastaví na prvním.
- 04
Zkontrolujte seznam chyb
Každá chyba zobrazuje JSON Pointer cestu k selhání hodnotě (např. /user/email), selhání klíčové slovo (type, required, minimum) a lidsky čitelnou zprávu. Opravte každou a znovu validujte.
Co vývojáři validují s JSON Schema
- 01REST API request bodies — potvrd payload odpovídá tvaru endpointu, než pošlete.
- 02OpenAPI spec příklady objektů — validujte každý příklad proti inline schéma komponentě.
- 03Konfigurační soubory — zajistit povinné klíče jsou přítomny a hodnoty jsou správného typu.
- 04Data pipeline záznamy — spot strukturální drift mezi producenti a konzumenty dat.
- 05Odesílání formulářů payloads — test, že frontend validace zrcadlí backend schéma omezení.
- 06Webhook tělesa třetích stran — potvrďte dokumentované schéma odpovídá aktuální payload.
Soukromá validace, bez serveru
Ajv běží zcela v prohlížeči. Ani schéma ani data nejsou poslány do serveru — můžete bezpečně validovat schémata, která popisují vnitřní datové struktury a datové objekty, které obsahují citlivé hodnoty polí.
Validator podporuje JSON Schema drafty 6, 7, 2019-09 a 2020-12. Nejčastější draft v přírodě je Draft 7, který pokrývá všechna každodenní klíčová slova: type, properties, required, items, minimum, maximum, pattern, enum, anyOf, allOf, oneOf, not a $ref.
Časté otázky k JSON Schema Validatoru
Které JSON Schema drafty jsou podporovány?
Ajv podporuje drafty 6, 7, 2019-09 a 2020-12. Draft 7 je nejčastější v existujících kódech a pokrývá všechna standardní klíčová slova.
Proč se moje $ref schéma neresolvuje?
Externí $ref URL nejsou fetchovány v tomto nástroji pouze v prohlížeči. Inline všechny odkazované schémata pomocí $defs a lokálních JSON pointerů jako #/$defs/MyType.
Je moje schéma či data nahrány na libovolný server?
Ne. Ajv běží zcela v prohlížeči — jak schéma tak data zůstávají na vašem zařízení.
Mohu to použít k validaci OpenAPI 3 specu?
Můžete validovat jednotlivé schéma komponenty a příklady objektů. Validace celého OpenAPI dokumentu vyžaduje dedikovaný OpenAPI validator, který rozumí spec meta-schématu.
Proč vidím více chyb namísto jen první?
Validator je konfigurován s allErrors: true, což dělá Ajv sbírá každé selhání spíše než zastavit na prvním. Toto je záměrné — všechny problémy můžete opravit v jednom průchodu namísto opakovaných pokusů validace.