Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

6 Mayıs 2015 Çarşamba

JSON Schema ile nesnelerinizi doğrulama ya da şemaya uygun başlangıç nesneleri tanımlama

Şimdilik zaman azlığı çektiğimden anahtar kelimeler ve biraz kod parçası atacağım.
NPM Kütüphaneleri:
  1. json-schema-defaults
  2. is-my-json-valid

Şablon olması için kullanabilirsiniz Webstorm içinde:
module.exports = {
    "$schema": "http://json-schema.org/draft-04/schema#",
    name: "BenimSchemaM",
    description:"Örnek şema olsun diye az açıklamalı olarak yazabildim.Daha ilişki yönetimleri vardı :(",
    definitions: {},
    type: "object",     // şemanın doğrulayacağı ya da şemadan oluşturulacak nesnenin tipi. string, object, array...
    required: [],       // string dizisi. Olması mecburi property isimlerini içerir

    additionalProperties: false,    // Şemada tanımlı olmayan ama şemaya uygun olduğunu iddia eden nesnenin fazladan propertysine müsade et/me

    properties: {
        Id: {type: "number", default: 0},
        WebAdresi: {type: "string", format: "url"},
        dizi: {
            type: "array",              // dizi property sinin tipi ARRAY olacak ve
            items: {type: "string"}     // içindeki her eleman string tipinde olacak
        }
    }
};

Miras Alma(Inheritance) ya da Genişletme(Extend)

Bir esas bir de onu miras alacak şemamız olsun.
module.exports = {
    name: "Kullanıcı",
    description: "Session içinde kullanılacak kullanıcı",
    type: "object",
    definitions: {
        Providers: require('../providers/login')
    },
    required: ["Id", "Providers"],
    properties: {
        Id: {type: "integer", default: 0},
        AdiSoyadi: {type: "string"},
        EPosta: {type: "string", format: "email"},
        Sifre: {type: "string"},
        Providers: {$ref: "#/definitions/Providers", default: {}}
    },
    additionalProperties: true
};

Miras alarak yeni bir şema oluşturalım:
var tahtaRolu = {

    $schema: "http://json-schema.org/draft-04/schema#",
    description: "Tahtanın rollerini içerir >  HS > tahta:401:rol : Tahtanın rolleri > 1 | {adi:'Sahip', Yetkileri:['Ihale Girişi','Ihaleye Katılım', 'Teklif Girişi'] }",
    type: "object",
    required: ["Id", "Adi", "Yetki"],
    definitions: {
        Kullanici: require('../ortak/kullanici'),
        Rol: require('./tahtaRolu')
    },
    allOf: [
        {$ref: "#/definitions/Kullanici"},
        {
            properties: {
                Rol: {$ref: "#/definitions/Rol"}
            }
        }
    ],
    additionalProperties: false
};

module.exports = tahtaRolu;
Sonuç: