Κύρια σημεία
- 01Powered by Ajv, το πιο ευρέως χρησιμοποιούμενο JavaScript JSON Schema validator — αυτό που περνά εδώ περνά στο Node.js, Fastify και τα περισσότερα JS toolchains.
- 02Αναφέρει κάθε validation error αμέσως (allErrors mode), όχι μόνο την πρώτη αποτυχία.
- 03Κάθε σφάλμα περιλαμβάνει τη διαδρομή JSON Pointer στο failing field για γρήγορη πλοήγηση.
- 04Και το schema και τα δεδομένα τρέχουν εντελώς στο πρόγραμμα περιήγησής σας — τίποτα δεν φορτώνεται.
Γιατί να επικυρώσετε JSON έναντι ενός Schema;
Το JSON Schema είναι ο standard τρόπος για να περιγράψετε το σχήμα ενός JSON document — required fields, allowed types, value constraints, nested object structures. Η επικύρωση έναντι ενός schema πριν μια payload φτάσει στην παραγωγή πιάνει type mismatches, missing required fields και constraint violations νωρίς, όταν είναι φθηνό να το διορθώσετε.
Οι πιο κοινές χρήσεις είναι η δοκιμή API request και response bodies, η επικύρωση configuration files, ο έλεγχος OpenAPI example objects και η επαλήθευση data exports έναντι μιας γνωστής δομής. Ο validator του Handytool χρησιμοποιεί Ajv — τη de-facto JavaScript JSON Schema library, που χρησιμοποιείται στο Node.js ίδιο — έτσι τα αποτελέσματα εδώ ταιριάζουν με αυτό που θα δει το backend σας.
Πώς να επικυρώσετε JSON έναντι ενός Schema
- 01
Επικολλήστε το JSON Schema σας
Επικολλήστε το schema στο αριστερό πάνελ. Αυτό μπορεί να είναι ένα Draft 7 ή 2019-09 ή 2020-12 schema με type, properties, required, items, anyOf, allOf — οποιοδήποτε standard Ajv-supported keyword.
- 02
Επικολλήστε τα δεδομένα JSON σας
Επικολλήστε το data document που θέλετε να επικυρώσετε στο δεξί πάνελ. Αυτή είναι η instance — ένα API request body, ένα config object, μια εξαγωγή record ή ένα ενιαίο παράδειγμα από το OpenAPI spec σας.
- 03
Κάντε κλικ Validate
Το Ajv τρέχει την επικύρωση με allErrors: true, που σημαίνει ότι συλλέγει κάθε αποτυχία αντί να σταματά στην πρώτη.
- 04
Ελέγξτε τη λίστα σφαλμάτων
Κάθε σφάλμα εμφανίζει τη διαδρομή JSON Pointer στο failing value (π.χ. /user/email), το failing keyword (type, required, minimum) και ένα human-readable message. Διορθώστε καθένα και επικυρώστε ξανά.
Τι επικυρώνουν οι προγραμματιστές με JSON Schema
- 01REST API request bodies — επιβεβαιώστε ότι μια payload ταιριάζει το expected shape του endpoint πριν στείλετε.
- 02OpenAPI spec example objects — επικυρώστε κάθε παράδειγμα έναντι του inline schema component.
- 03Configuration files — διασφαλίστε ότι τα required keys υπάρχουν και οι τιμές είναι του σωστού τύπου.
- 04Data pipeline records — spot structural drift μεταξύ data producers και consumers.
- 05Form submission payloads — δοκιμάστε ότι η frontend validation καθρεφτίζει τα backend schema constraints.
- 06Third-party webhook bodies — επιβεβαιώστε ότι το τεκμηριωμένο schema ταιριάζει με το πραγματικό payload.
Ιδιωτική Επικύρωση, Χωρίς Server που απαιτείται
Το Ajv τρέχει εντελώς στο πρόγραμμα περιήγησής σας. Ούτε το schema ούτε τα δεδομένα στέλνονται σε κανέναν server — μπορείτε με ασφάλεια να επικυρώσετε schemas που περιγράφουν εσωτερικές δομές δεδομένων και data objects που περιέχουν ευαίσθητες τιμές πεδίου.
Ο validator υποστηρίζει JSON Schema drafts 6, 7, 2019-09 και 2020-12. Το πιο κοινό draft στον πραγματικό κόσμο είναι Draft 7, το οποίο καλύπτει όλες τις everyday keywords: 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 είναι το πιο κοινό σε υπάρχοντα codebases και καλύπτει όλα τα standard keywords.
Γιατί δεν επιλύεται το $ref schema μου;
Τα external $ref URLs δεν φορτώνονται σε αυτό το browser-only εργαλείο. Inline όλα τα referenced schemas χρησιμοποιώντας $defs και local JSON pointers όπως #/$defs/MyType.
Φορτώνεται το schema ή τα δεδομένα μου σε κάποιον server;
Όχι. Το Ajv τρέχει εντελώς στο πρόγραμμα περιήγησής σας — και το schema και τα δεδομένα παραμένουν στη συσκευή σας.
Μπορώ να το χρησιμοποιήσω αυτό για να επικυρώσω ένα OpenAPI 3 spec;
Μπορείτε να επικυρώσετε μεμονωμένα schema components και example objects. Η επικύρωση του ολόκληρου OpenAPI document απαιτεί έναν αποκλειστικό OpenAPI validator που κατανοεί το spec meta-schema.
Γιατί βλέπω πολλαπλά σφάλματα αντί για μόνο το πρώτο;
Ο validator έχει ρυθμιστεί με allErrors: true, το οποίο κάνει το Ajv να συλλέγει κάθε αποτυχία αντί να σταματά στο πρώτο. Αυτό είναι σκόπιμο — μπορείτε να διορθώσετε όλα τα προβλήματα σε ένα πάσο αντί να κάνετε επαναλαμβανόμενες προσπάθειες επικύρωσης.