Beklenen JSON Schema tanımınızı sola, gerçek API yanıt JSON'unuzu sağa yapıştırmanız yeterli. Araç her iki yapıyı otomatik olarak karşılaştırır, veri tiplerini, zorunlu alanları, regex patternlerini ve daha fazlasını hassas şekilde doğrular. Bu, API sözleşme testi ve frontend-backend veri yapısı tutarlılığını sağlamak için gerekli bir adımdır.
Araç JSON Schema Draft-07 standardını tamamen takip eder. Temel tip kontrolü (type), zorunlu alanlar (required), özellik tanımları (properties), regex pattern eşleştirme (pattern), format doğrulama (format), enum değerleri (enum) ve güçlü kombinasyon mantığı doğrulamasını (allOf, anyOf, oneOf, not) destekler.
JSON verileri schema'yla eşleşmediğinde, araç son derece ayrıntılı bir hata raporu oluşturur. Başarısız JSON yolunu, belirli hata türünü (tip uyumsuzluğu veya eksik zorunlu alan gibi) ve ilgili schema kuralını hassas şekilde gösterir — backend geliştirme ve veri temizleme hata ayıklama verimliliğini büyük ölçüde artırır.
ETL veri temizleme veya veri alımından önce, verilerin önceden tanımlanmış schema spesifikasyonlarına uygun olup olmadığını doğrulamak için bu aracı kullanabilirsiniz. Bu, kirli verileri ve anomalileri etkili şekilde yakalar, veritabanlarına veya downstream sistemlere giren veri kalitesini sağlar — sağlam veri pipeline'ları oluşturmanın kritik bir adımıdır.
Hayır. Tüm JSON Schema Doğrulayıcı işleme tamamen tarayıcınızda yerel olarak gerçekleşir. Kurumsal API veri yapıları veya kişisel iş verileri olsun, hiçbir şey hiçbir sunucuya yüklenmez, verileriniz için enterprise düzeyinde gizlilik koruması sağlar.
Aşağıdaki tablo, JSON Schema spesifikasyonunda en sık kullanılan doğrulama anahtar kelimelerini hızlı başvuru için kategorilere göre düzenlenmiş olarak listeler.
| Anahtar Kelime | Açıklama |
|---|---|
| Temel Tipler | |
type | Veri tipini belirtin: string, number, integer, boolean, array, object, null. Tek tip veya tip dizisini destekler. |
| Nesne Doğrulama | |
properties | Nesne özellikleri için alt şemalar tanımlayın. |
required | Hangi özelliklerin gerekli olduğunu belirten metin dizisi. |
additionalProperties | properties içinde tanımlanmayan ek özelliklere izin verilip verilmediğini kontrol eder; false veya bir şema olabilir. |
propertyNames | Özellik adlarının eşleşmesi gereken şema (genellikle pattern regex kullanır). |
minProperties | Bir nesnenin içermesi gereken minimum özellik sayısı. |
maxProperties | Bir nesnenin içerebileceği maksimum özellik sayısı. |
| Sabitler ve Enumlar | |
enum | İzin verilen değerler dizisi; veri diziden tam olarak bir değer olmalıdır. |
const | Sabit değer; veri bu değere kesinlikle eşit olmalıdır. |
| Sayısal Kısıtlamalar | |
minimum | Minimum sayısal değer (dahil). |
maximum | Maksimum sayısal değer (dahil). |
exclusiveMinimum | Değer kesinlikle bundan büyük olmalıdır (hariç). |
exclusiveMaximum | Değer kesinlikle bundan küçük olmalıdır (hariç). |
multipleOf | Değer belirtilen sayının katı olmalıdır. |
| Metin Kısıtlamaları | |
minLength | Minimum metin uzunluğu. |
maxLength | Maksimum metin uzunluğu. |
pattern | Normal ifade; metin bu desenle eşleşmelidir. |
format | Anlamsal format doğrulaması: email, uri, date-time, uuid, ipv4, ipv6, hostname vb. |
| Dizi Kısıtlamaları | |
items | Dizi elemanları için şema (tek şema tüm elemanlara uygulanır). |
minItems | Minimum dizi eleman sayısı. |
maxItems | Maksimum dizi eleman sayısı. |
uniqueItems | Dizi elemanlarının benzersiz olması gerekip gerekmediği. |
contains | En az bir dizi elemanı bu şemayla eşleşmelidir. |
| Kombinasyon Mantığı | |
allOf | Veri tüm alt şemalarla eşleşmelidir (mantıksal VE). |
anyOf | Veri en az bir alt şemayla eşleşmelidir (mantıksal VEYA). |
oneOf | Veri tam olarak bir alt şemayla eşleşmelidir (XOR). |
not | Veri bu şemayla eşleşMEMELİDİR (mantıksal DEĞİL). |
| Koşullu Doğrulama | |
if | Koşullu şema; veri if ile eşleşirse, then'i sağlamalıdır; aksi takdirde else'i sağlamalıdır. |
then | if koşulu sağlandığında sağlanması gereken şema. |
else | if koşulu sağlanmadığında sağlanması gereken şema. |
| Referanslar ve Yeniden Kullanım | |
$ref | Diğer şema tanımlarına başvuru; yerel başvuruları (#/$defs/xxx) ve uzak başvuruları destekler. |
$defs | Yeniden kullanılabilir alt şemalar tanımlayın (Draft 2019-09+; eski sürümler definitions kullanır). |
definitions | Draft 4-7'de yeniden kullanılabilir alt şemalar için anahtar kelime. |
| Meta Bilgiler | |
title | Şema başlığı (açıklama, doğrulanmaz). |
description | Şema açıklaması (açıklama, doğrulanmaz). |
default | Varsayılan değer (açıklama, doğrulanmaz). |
examples | Örnek değerler dizisi (açıklama, doğrulanmaz). |
$schema | Kullanılan JSON Schema spesifikasyon sürümünü belirtin. |
| Bağımlılıklar | |
dependentRequired | Özellik bağımlılığı: bir özellik var olduğunda, diğer özellikler de var olmalıdır (Draft 2019-09+). |
dependencies | Hem özellik hem de şema bağımlılıklarını kapsayan Draft 4-7'deki bağımlılık anahtar kelimesi. |
JSON Schema birden fazla Draft sürümünden geçerek gelişmiştir. Draft 7 şu anda en yaygın kullanılan sürümdür; Draft 2020-12 en son kararlı sürümdür.
| Özellik | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 |
|---|---|---|---|---|---|
| tip doğrulaması | ✓ | ✓ | ✓ | ✓ | ✓ |
| gerekli alanlar | ✓ | ✓ | ✓ | ✓ | ✓ |
| enum/const | ✓ enum | ✓ | ✓ | ✓ | ✓ |
| minimum/maximum | ✓ | ✓ | ✓ | ✓ | ✓ |
| exclusiveMinimum/Maximum | mantıksal | sayı | sayı | sayı | sayı |
| multipleOf | ✓ | ✓ | ✓ | ✓ | ✓ |
| minLength/maxLength | ✓ | ✓ | ✓ | ✓ | ✓ |
| pattern regex | ✓ | ✓ | ✓ | ✓ | ✓ |
| format doğrulaması | ✓ | ✓ | ✓ | varsayılan olarak yalnızca açıklama | varsayılan olarak yalnızca açıklama |
| items dizisi | ✓ | ✓ | ✓ | ✓ | ✓ |
| contains | ✗ | ✓ | ✓ | ✓ | ✓ |
| minItems/maxItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| uniqueItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| additionalProperties | ✓ | ✓ | ✓ | ✓ | ✓ |
| propertyNames | ✗ | ✓ | ✓ | ✓ | ✓ |
| allOf/anyOf/oneOf/not | ✓ | ✓ | ✓ | ✓ | ✓ |
| if/then/else | ✗ | ✗ | ✓ | ✓ | ✓ |
| $ref başvuruları | ✓ | ✓ | ✓ | ✓ | ✓ |
| $defs yeniden kullanım | definitions | definitions | definitions | $defs | $defs |
| dependentRequired | ✗ | ✗ | ✗ | ✓ | ✓ |
| prefixItems tanımlama grupları | dizi biçimi | dizi biçimi | dizi biçimi | dizi biçimi | prefixItems |
| unevaluatedProperties | ✗ | ✗ | ✗ | ✓ | ✓ |
| $dynamicRef/$anchor | ✗ | ✗ | ✗ | ✓ $recursiveRef | ✓ dynamicRef |