NPM Kütüphaneleri:
Ş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ç: