JSON Şeması Doğrulayıcı
Bir şema ve bir belge yapıştırın, taslağı seçin; doğrulayıcı belgeyi şemanızda kullanılan her anahtar kelimeye göre denetler, type, required, enum, oneOf, $ref, if/then/else, özel format, ve her ihlali, sorunlu konumu tam olarak gösteren JSONPath tarzı bir işaretçiyle raporlar.
Bir şemaya göre nasıl doğrulama yapılır
-
1
Şemayı yapıştırın
JSON Şeması taslak 04, 07 veya 2020-12. `$schema` anahtar kelimesi (varsa) taslağı otomatik olarak seçer.
-
2
Belgeyi yapıştırın
Doğrulamak istediğiniz JSON. Önce geçerli bir JSON olmalıdır; sözdizimi hataları şema değerlendirmesinden önce gösterilir.
-
3
Doğrulayın
Her ihlal, bir JSON işaretçisi (`/user/email`) ve başarısız olan anahtar kelime (`format`, `required` vb.) ile birlikte raporlanır.
-
4
Düzeltin ve yeniden doğrulayın
İki taraftan birini düzenleyin; durum anında güncellenir.
Desteklenen anahtar kelimeler
Çekirdek: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired.
Bileşim: allOf, anyOf, oneOf, not.
Uygulayıcılar: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames.
Koşullar: if, then, else, dependentSchemas.
Referanslar: $ref, $defs, $id, $anchor.
Biçimler (etkinleştirildiğinde doğrulama ile): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex.
Hata çıktısı
FAIL /user/email format "not-an-email" is not a valid "email"
FAIL /user/age minimum -3 is less than the minimum 0
FAIL /orders/0/total type "42" is not of type "number"
FAIL / required missing required property "shippingAddress"
Her hata, başarısız olan yolu ve anahtar kelimeyi içerir; bu da düzenleyicinizde hızlıca konumlandırmanızı sağlar.
Sizi yanıltan taslak farklılıkları
| Anahtar kelime | Taslak 04 | Taslak 07 | Taslak 2020-12 |
|---|---|---|---|
id ile $id |
id |
$id |
$id |
exclusiveMaximum bool olarak |
Evet | Sayı | Sayı |
items dizi sözdizimi |
items |
items |
prefixItems |
$ref aynı düzeydeki anahtarlara izin verir |
Hayır | Hayır | Evet |
Doğru taslağı ayarlayın; draft-04 şemasını 2020-12 olarak doğrulamak id ve diğer bazı ince ayrıntıları yanlış yorumlar.
Tipik iş akışları
- API sözleşmesi testi: dağıtımdan önce, oluşturulan/güncellenen OpenAPI şemasını gerçek örnek yanıtlara göre çalıştırın.
- Yapılandırma sıkılaştırma: birleştirmeden önce CI içinde her YAML/JSON yapılandırmasını bir şemaya göre doğrulayın.
- Veri alımı: beklenen biçime uymayan yükleri en baştan, açık bir hata mesajıyla reddedin.
Yaygın hatalar
formatzorlamasını unutmak. Varsayılan olarak çoğu doğrulayıcı, bilinmeyen biçimleri yalnızca ek açıklama olarak ele alır. Geçersiz e-postaları ve tarihleri gerçekten reddetmek için katı biçim doğrulamasını etkinleştirin.oneOf’u aşırı kullanmak.oneOf’un iki dalı çakışırsa belge başarısız olur (tam olarak bir tanesiyle eşleşmelidir).anyOfveya ayırt edici desenler kullanın.additionalProperties: falseile katı şemalar. Yeni bir isteğe bağlı alan eklemek, uyumluluğu bozan bir değişikliğe dönüşür. Gerçekten kapalı bir nesne istemiyorsanız bunu belirtmeyin.
Sık Sorulan Sorular
Evet. Taslak 2020-12, 07 ve 04’ün tamamı desteklenir. Doğrulayıcı, doğru olanı seçmek için belgenizden $schema anahtar kelimesini okur ya da arayüzdeki seçiciye geri döner.
Standart biçimler (email, date-time, uuid, ipv4 vb.) katı biçim doğrulaması etkinleştirildiğinde doğrulanır. Şemanızda bildirilen özel biçimler, pattern ile bir regex sağlamadığınız sürece yalnızca ek açıklama olarak ele alınır.
Dahili başvurular (#/$defs/foo) otomatik olarak çözülür. Dış HTTP başvuruları güvenlik nedeniyle varsayılan olarak getirilmez. Önce dış başvurularınızı satır içine ekleyin ya da uzaktan $ref çözümlemeyi destekleyen özel bir araç kullanın.
Evet. Hem şema hem de belge yerelde kalır. Yapıştırılan içerik asla yüklenmez, dahili API sözleşmeleri ve hassas veriler için güvenlidir.
İlgili Araçlar
FPS Sayacı
requestAnimationFrame ile tarayıcı FPS değerini ölçün: yumuşatma, en düşük ve en yüksek kare hızı, uyarı eşiği ve isteğe bağlı grafik. Yerel çalışır, yükleme ve API yoktur.
Webpack Yapılandırma Oluşturucu
Kısa bir formdan webpack 5 için bir webpack.config.js oluşturun: entry, çıkış klasörü ve modu ayarlayın; ardından TypeScript, Babel, bir CSS yükleyici, HtmlWebpackPlugin ve bir dev sunucu açın.
Dosya Boyutu Dönüştürücü
Bayt, KB, MB, GB, TB ve ikili IEC birimleri (KiB, MiB, GiB, TiB) arasında, ondalık ve ikiliyi dilediğiniz gibi birleştirerek dönüşüm yapın.
Telefon numarası doğrulayıcı
Telefon numarasının ülkeye göre yapısını denetleyin; bölge, tür, E.164, uluslararası, ulusal ve RFC 3966 biçimlerini görün.
Kurgusal telefon numarası oluşturucu
Beş ülkede resmen ayrılmış aralıklardan 50 adede kadar kurgusal numara üretin.
Rastgele adres oluşturucu
Arayüz maketleri ve testler için üç basitleştirilmiş biçimde 1–20 adres benzeri kayıt oluşturun.
Araç diğer dillerde mevcuttur
- JSONスキーマバリデーター [JA]
- JSON Schema-validator [SV]
- Penentu Struktur JSON [ID]
- Validador de JSON Schema [PT]
- JSON 스키마 검증기 [KO]
- Validateur de schéma JSON [FR]
- JSON Schema-validator [NL]
- Trình xác thực JSON Schema [VI]
- JSON-Schema-Validator [DE]
- أداة التحقق من مخطط JSON [AR]
- เครื่องมือตรวจสอบ JSON Schema [TH]
- Walidator JSON Schema [PL]
- Validador de JSON Schema [ES]
- JSON 模式验证器 [ZH]
- Validator di JSON Schema [IT]
- JSON Schema Validator [EN]
- Валидатор JSON Schema [RU]