Json Schema hakkında daha detay

in #json-schema5 years ago (edited)

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
    Selection_014.png

  • 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;

Coin Marketplace

STEEM 0.15
TRX 0.12
JST 0.026
BTC 55825.83
ETH 2516.08
USDT 1.00
SBD 2.28