yine ben ve yine Json Schema :)
Bu Json Schema nerden çıktı arkadaşım sen niye bunu anlatıyorsun diyebilirsiniz.
Aslında bu yazıdaki amacım önce, Soap XML olan web servisler için WSDL dökümanını referans verip daha sonra konuyu Json Schema ve path query e bağlayacaktım. Ama Json diye başlık açıp XML detaylarda kaybolmaya gidiyordu iş. Bu yüzden direk konuya geçeyim;
İşin özü şu; Schema kullanın abicim. Yaptığınız işi önemsiyorsanız bunu bilmelisiniz. Kullandığınız platform, alt yapı veya dilin önemi yok.
Eğer Web servisler ile ilgili bir çözüm veya ürün yapıyorsanız bu sayfadaki terimleri mutlaka araştırın derim.
Peki nedir bu JSON şema;
JSON belgelerine açıklama eklemenizi ve doğrulamanızı sağlayan bir dökümandır ( JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. ) tarifini https://json-schema.org/ adresinden edinebilirsiniz
Hızlı anlayanlar için örnek bir json şema şu şekildedir;
https://www.tutorialspoint.com/json/json_schema.htm adresinden ulaşabileceğiniz üzere;
JSON Şeması, JSON verilerinin yapısını tanımlamak için JSON tabanlı biçim için bir belirtimdir. JSON verilerinin yapısını doğrulamak için güçlü bir araçtır. Bununla birlikte, özelliklerini okuyarak kullanmayı öğrenmek, planlarına bakarak bir araba kullanmayı öğrenmek gibidir.
- Mevcut veri biçiminizi açıklar.
- Açık, insan ve makine tarafından okunabilir belgeler.
- Tam yapısal doğrulama, otomatik test için yararlıdır.
- Müşteri tarafından gönderilen verileri doğrulayan eksiksiz yapısal doğrulama sağlar.
-- Döküman Taslaktır, buraya konu hakkında daha fazla bilgi yazılacak --
Json Schema ile biraz çalışma fırsatım oldu bu sırada dikkat edilmesi gerekenleri zaman oldukça ve geliştirdikçe aktarmaya devam edeceğim;
Otomatik şema oluşturulan bazı generatörlerde ( https://jsonschema.net/ ), verdiğiniz örnek veriyer göre direk Regex tanımamasını oluşturabilirler. Eğer kullanacağınız alanlarda Regex lik durumunuz yoksa, tanımlamalayı kaldırın. Daha sonra validasyon hatası almayın veya karmaşası yaşamayın :)
Null geçebileceğiniz alanar için type taginde "null" tanımlaması kullanın
interger tanımlama yapılan html inputlar "e" karakteri girilebiliyor ( backendciler dikkat :) )
WSDL bilenler için "TYPES" kısmındaki tanımlamalar burada da bulunmakta ve "definations"-"$ref" taglari ile kullanılabilmektedir. Bazı farklı ( json schema ) draf versiyon örneklerinde "$defs" olarak da denkgelebilirsiniz.
-- bu liste de güncellenmeye devam edilecektir --
"E hani yukarda xml den konu açtın nedir" diyebilirsiniz;
XML bir bilgiyi tariflemek için aşağıdaki yöntemler de kullanılır;
Döküman Tip tanımlaması ( daha eski ve daha basit olan ) -> DTD (Document Type Definitions)
XML Schema veya XSD (Xml Schema Definitions) -> https://www.w3schools.com/xml/schema_intro.asp
XQuery ve XPath -> https://www.w3schools.com/xml/xquery_intro.asp