Önemli noktalar
- 01Ajv tarafından desteklenir, en yaygın kullanılan JavaScript JSON Şema doğrulayıcısı — Node.js, Fastify ve çoğu JS araç zincirinde geçenleri burada geçer.
- 02Her doğrulama hatasını aynı anda bildir (allErrors modu), sadece ilk başarısızlık değil.
- 03Her hata başarısız alanın JSON Göstericisi yolunu içerir, hızlı navigasyon için.
- 04Hem şema hem de veri tamamen tarayıcınızda çalışır — hiçbir şey yüklenmiyor.
Neden JSON'u Şemaya Karşı Doğrula?
JSON Şema, JSON belgesinin şeklini tanımlamanın standart yoludur — gerekli alanlar, izin verilen türler, değer kısıtlamaları, iç içe nesne yapıları. Şemaya karşı doğrulama üretime ulaşmadan önce tür uyumsuzluklarını, eksik gerekli alanları ve kısıtlama ihlallerini yakalar, bunlar düzeltilmesi ucuzken.
En yaygın kullanım durumları API istek ve yanıt gövdelerini test etmek, yapılandırma dosyalarını doğrulamak, OpenAPI örnek nesnelerini kontrol etmek ve veri dışa aktarmalarını bilinen bir yapıya karşı doğrulamaktır. Handytool'un doğrulayıcı Ajv kullanır — geçerli JavaScript JSON Şema kitaplığı, Node.js'in kendisi içinde kullanılan — bu nedenle buradaki sonuçlar arka ucu göreceği şeyle eşleşir.
JSON'u Şemaya Karşı Nasıl Doğrula
- 01
JSON Şemanı yapıştır
Sol panele şemayı yapıştır. Bu Draft 7 veya 2019-09 veya 2020-12 şema tür, özellikler, gerekli, öğeler, anyOf, allOf — Ajv-desteklenen herhangi bir standart anahtar kelimeyle olabilir.
- 02
JSON verilerini yapıştır
Sağ panele doğrulamak istediğin veri belgesini yapıştır. Bu örnek — API istek gövdesi, yapılandırma nesnesi, dışa aktarma kaydı veya OpenAPI spesifikasyonundan tek örnek.
- 03
Doğrula'ya tıkla
Ajv, doğrulamayı allErrors: true ile çalıştırır, ilk birinde durmak yerine her başarısızlığı topladığını anlama gelir.
- 04
Hata listesini gözden geçir
Her hata başarısız değerin JSON Göstericisi yolunu gösterir (örneğin /kullanıcı/e-posta), başarısız anahtar kelimeyi (tür, gerekli, minimum) ve insanlar tarafından okunabilir bir mesaj. Her birini düzelt ve yeniden doğrula.
Geliştiriciler JSON Şemasıyla Ne Doğrula
- 01REST API istek gövdeleri — göndermeden önce yükün bitiş noktasının beklenen şeklini eşleştirdiğini doğrula.
- 02OpenAPI spec örnek nesneleri — her örneği satır içi şema bileşenine karşı doğrula.
- 03Yapılandırma dosyaları — gerekli anahtarların mevcut olduğunu ve değerlerin doğru türde olduğunu sağla.
- 04Veri hattı kayıtları — veri üreticileri ve tüketicileri arasında yapısal sapma tespit et.
- 05Form gönderme yükleri — ön uç doğrulaması arka uç şema kısıtlamalarını aynaya alıp almadığını test et.
- 06Üçüncü taraf webhook gövdeleri — belgelenen şema gerçek yükleme eşleştiğini doğrula.
Özel Doğrulama, Sunucu Gerekli Değil
Ajv tamamen tarayıcında çalışır. Ne şema ne de veri hiç bir sunucuya gönderilmez — iç veri yapılarını tanımlayan şemaları ve hassas alan değerleri içeren veri nesnelerini güvenle doğrulayabilirsin.
Doğrulayıcı JSON Şema taslakları 6, 7, 2019-09 ve 2020-12'yi destekler. Halen yönetilen en yaygın taslak Draft 7, tüm gündelik anahtar kelimeleri kapsar: tür, özellikler, gerekli, öğeler, minimum, maksimum, desen, enum, anyOf, allOf, oneOf, değil ve $ref.
JSON Şema Doğrulayıcı SSS
Hangi JSON Şema taslakları destekleniyor?
Ajv taslakları 6, 7, 2019-09 ve 2020-12'yi destekler. Draft 7 mevcut kod tabanlarında en yaygın ve tüm standart anahtar kelimeler.
$ref şemam neden çözülmüyor?
Dış $ref URL'leri bu tarayıcı-yalnızca araçta getirilmez. $defs ve #/$defs/MyType gibi yerel JSON göstericileri kullanarak tüm başvurulan şemaları satır içi yapın.
Şemam veya verilerim herhangi bir sunucuya yüklenmez mi?
Hayır. Ajv tamamen tarayıcında çalışır — hem şema hem de veri cihazınızda kalır.
Bunu OpenAPI 3 spec doğrulamak için kullanabilir miyim?
Bireysel şema bileşenlerini ve örnek nesnelerini doğrulayabilirsin. Tüm OpenAPI belgesini doğrulamak, spec meta-şemasını anlayan adanmış OpenAPI doğrulayıcısı gerektirir.
Neden birden fazla hata yerine sadece ilk hatayı görüyorum?
Doğrulayıcı allErrors: true ile yapılandırılır, bu da Ajv'nin ilkinde durmak yerine her başarısızlığı toplamasını sağlar. Bu niyet — tekrarlanan doğrulama denemesinden ziyade bir geçişte tüm sorunları düzeltebilirsin.