JSON Schema yalnızca yazdığınız kuralları doğrular

Okunabilir JSON bir isteğe uygun olmayabilir. Şema beklenen veriyi tanımlar; yazılmamış koşulları uygulamaz ve verinin dışındaki gerçekleri kanıtlamaz.

Alanın varlığı ile türü farklı kararlardır

Bir alanı properties içinde tanımlamak, bulunduğunda sınırlar; tek başına zorunlu yapmaz. Mutlaka gelmesi gerekiyorsa required kullanın.

3 sayısı ile "3" metni farklıdır. Birinin kabulü diğerinin otomatik dönüştürüleceğini göstermez; sözleşmeyi tüketicinin gereksinimine göre tasarlayın.

Kaynaklar: JSON Schema — Properties, required fields and additional properties

Fazladan alanlara karar verin

Basit nesne şemasında additionalProperties: false tanımsız alanları reddeder. Ad yazım yanlışlarını yakalayabilir; sözleşme genişlediğinde bilinçli güncelleme gerekir.

Eksik alanı, yanlış türü ve ek özelliği ayrı örneklerle deneyin. Her örneğin sınadığı kural belli olunca sonuç anlaşılır.

Kaynaklar: JSON Schema — Properties, required fields and additional properties

Şemaya uyum isteğin onayı değildir

ToolRoof Draft 2020-12’nin yerel bir alt kümesini kontrol eder. Uzak şemaları getirmez ve her anahtar sözcüğü desteklemez; desteklenmeyeni sessizce geçerli saymak yerine bildirir.

Başarı ürün varlığını, veritabanı fiyatını veya kullanıcı yetkisini kanıtlamaz. default açıklaması da bu denetleyicide eksik alanı doldurmaz.

Örnek: gizli tür dönüşümü olmadan zorunlu miktar

Sözleşmede quantity, en az 1 olan integer türünde, required içinde ve ek özellikler yasak olsun. {"quantity":3} geçer; {"quantity":"3"} tür nedeniyle kalır.

{} eksik alan, {"quantity":3,"note":"draft"} ek özellik yüzünden kalır. 3 değerinin geçmesi stokta 3 adet olduğunu kanıtlamaz; bu örneğin dışındaki bir kuraldır.

Kaynaklar