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ç: