Tärkeimmät kohdat
- 01Powered by Ajv, yleisimmin käytetty JavaScript JSON-skeeman vahvistin — mitä läpäisee täällä läpäisee Node.js:ssä, Fastifyssa ja useimmissa JS-työkaluketjussa.
- 02Raportoi jokainen vahvistusvirhe kerralla (allErrors moodi), ei vain ensimmäinen epäonnistuminen.
- 03Jokainen virhe sisältää JSON-osoitinpolun epäonnistuneeseen kenttään nopeaa navigointia varten.
- 04Sekä skeema että tiedot suoritetaan kokonaan selaimessasi — mitään ei ladattu.
Miksi vahvista JSON skeemaa vastaan?
JSON-skeema on vakioseikka kuvataan JSON-asiakirjan muoto — vaaditut kentät, sallitut tyypit, arvon rajoitukset, sisäkkäiset objekti-rakenteet. Vahvistaminen skeemaa vastaan ennen kuin hyötykuorma saavuttaa tuotannon saa tyyppi-epäsuhtoja, puuttuvia vaadittuja kenttiä ja rajoitus-rikkomuksia ajoissa, kun ne ovat halpoja korjata.
Yleisimpiä käyttötapauksia ovat API-pyynnön ja vastaus-runkojen testaus, määritystiedostojen vahvistus, OpenAPI-esimerkkiobjektien tarkastus ja tietojen viennin tarkistaminen tunnetun rakenteen vastaan. Handytoolin vahvistin käyttää Ajv-ta — de facto JavaScript JSON-skeeman kirjastoa, käytetään Node.js:n sisällä — joten tulokset tässä vastaavat mitä taustajärjestelmäsi näkee.
JSON-vahvistus skeemaa vastaan
- 01
Liitä JSON-skeema
Liitä skeema vasemmassa paneelissa. Tämä voi olla Draft 7 tai 2019-09 tai 2020-12 skeema tyypillä, ominaisuuksilla, vaadituilla, tuotteilla, anyOf, allOf — mikä tahansa vakio Ajv-tuettu avainsana.
- 02
Liitä JSON-tiedot
Liitä tietoasiakirja, jonka haluat vahvistaa oikeassa paneelissa. Tämä on instanssi — API pyynnön runko, kokoonpano-objekti, viennit-tietue tai yksittäinen esimerkkiä OpenAPI-spesistä.
- 03
Klikkaa Vahvista
Ajv suorittaa vahvistuksen allErrors: true kanssa, tarkoittaen sitä kerää jokainen epäonnistuminen eikä pysähdy ensimmäiseen.
- 04
Tarkista virhelist
Jokainen virhe näyttää JSON-osoitinpolun epäonnistuneeseen arvoon (esim. /user/email), epäonnistuneet avainsanat (tyyppi, vaadittu, minimi) ja ihmislukuisen sanoman. Korjaa jokainen ja uudelleen vahvista.
Mitä kehittäjät vahvistavat JSON-skeemalla
- 01REST API pyynnön runko — vahvista hyötykuorma vastaa pääte pisteen odotettua muotoa ennen lähettämistä.
- 02OpenAPI spessi esimerkki objektit — vahvista jokainen esimerkki sisäkkäinen skeema komponenttia vastaan.
- 03Kokoonpano tiedostot — varmista vaaditut avaimet ovat läsnä ja arvot ovat oikean tyyppisiä.
- 04Tietojen putki-tietue — spot rakenteiset ajautuminen tietojen tuottajien ja kuluttajien välillä.
- 05Lomake lähettämisen hyötykuorma — testi että frontend-vahvistus peilaavat tausta-skeeman rajoitukset.
- 06Kolmannen osapuolen webhook-runko — vahvista dokumentoidun skeeman vastaa varsinaista hyötykuormaa.
Yksityinen vahvistus, palvelin ei vaadita
Ajv suoritetaan kokonaan selaimessasi. Skeemaa eikä tietoja lähetetä mihinkään palvelimelle — voit turvallisesti vahvista skeema, jotka kuvaavat sisäisiä tietorakenteita ja tietojen objekteja, jotka sisältävät arkaluontoisia kentän arvoja.
Vahvistin tukee JSON-skeeman luonnoksia 6, 7, 2019-09 ja 2020-12. Yleisimmin luonnos liikenteessä on Draft 7, joka kattaa kaikki jokapäiväiset avainsanat: tyyppi, ominaisuudet, vaadittu, tarvittavat, minimi, maksimi, mallin, enum, anyOf, allOf, oneOf, ei ja $ref.
JSON-skeeman vahvistin — UKK
Mitä JSON-skeeman luonnoksia tuetaan?
Ajv tukee luonnoksia 6, 7, 2019-09 ja 2020-12. Draft 7 on yleisimmin olemassa olevissa kannoissa ja kattaa kaikki vakio avainsanat.
Miksi $ref skeemani ei ratkea?
Ulkoiset $ref URL-osoitteet ei haettu tässä vain selaimessa olevassa työkalussa. Liitä kaikki viitattavat skeema käyttäen $defs ja paikalliset JSON-osoittimet kuten #/$defs/MyType.
Lähetetäänkö skeemani tai tiedot millekään palvelimelle?
Ei. Ajv suoritetaan kokonaan selaimessasi — skeema ja tiedot pysyvät laitteellasi.
Voinko käyttää tätä OpenAPI 3 spessin vahvistukseen?
Voit vahvistaa yksittäisiä skeema komponentteja ja esimerkkiobjekteja. Koko OpenAPI-asiakirjan vahvistus vaatii erillisen OpenAPI-vahvistimen, joka ymmärtää spessin meta-skeeman.
Miksi näen useita virheitä yhden sijasta ensimmäinen?
Vahvistin on konfiguroitu allErrors: true kanssa, joka tekee Ajv keräävät jokaisen epäonnistumisen eikä pysähdy ensimmäiseen. Tämä on tarkoituksellinen — voit korjata kaikki asiat yhdessä käynnissä eikä toistuvat vahvistus-yritykset.