একটি নমুনা ডকুমেন্ট থেকে জেনারেট করা স্কিমা নমুনায় যা ছিল তার বর্ণনা করে। এটি একটি শুরুর বিন্দু, অন্য কোথা থেকে দেওয়া স্পেসিফিকেশন নয়, এবং এই সরঞ্জাম এটিকে সেইভাবে আচরণ করতে তৈরি করা হয়েছে বজায় তথ্য যা সত্যিই সমর্থন করে তার চেয়ে বেশি নিশ্চিততা নির্দেশ করার চেয়ে।
JSON Schema জেনারেটর ব্যবহার করা
একটি ডকুমেন্ট, বা কয়েকটি রেকর্ডের একটি অ্যারে পেস্ট করুন, একটি ড্রাফট বাছুন (2020-12 বা Draft 07), স্ট্রিং ফরম্যাট সনাক্ত করতে হবে কিনা, এবং বাধ্যতামূলক কী চিহ্নিত করতে হবে কিনা, তারপর Schema জেনারেট চাপুন।
দেওয়া
[
{"id": 1, "name": "a", "score": 1},
{"id": 2, "name": "b", "score": 1.5}
]
উভয় রেকর্ডে id, name এবং score আছে, তাই তিনটি required-এ
দেখা যায়। id প্রতিটি রেকর্ডে একটি পূর্ণসংখ্যা এবং "integer"
হয়ে যায়। score-এ দ্বিতীয় রেকর্ডে একটি ভগ্নাংশ আছে, 1.5,
তাই এর ধরন "integer"-এর বদলে বৃহত্তর "number", কারণ এটি
সত্যিই অপূর্ণসংখ্যা মান ধারণ করে।
একটি কী চুপচাপ required থেকে কেন পড়ে যেতে পারে
তৃতীয় রেকর্ড যোগ করুন, {"id": 3, "name": "c"}, score ফিল্ড ছাড়া,
এবং পুনরায় জেনারেট করুন: score আর বাধ্যতামূলক নয়, যখন id এবং
name বাধ্যতামূলক থাকে। একটি কী কেবল তখনই বাধ্যতামূলক চিহ্নিত
হয় যখন অ্যারের প্রতিটি রেকর্ড এটি বহন করে। একটি রেকর্ডে একটি
ফিল্ড অনুপস্থিত থাকলে প্রমাণ করে না যে ফিল্ড আপনার সম্পূর্ণ API-তে
ঐচ্ছিক, কিন্তু এটি প্রমাণ করে যে স্কিমা সৎভাবে প্রতিশ্রুতি দিতে
পারে না যে এটি সবসময় সেখানে থাকবে, তাই এটি ঐচ্ছিক হয়ে যায়।
এটি সেই একটি নিয়ম যা পৃষ্ঠের FAQ সরাসরি ঘোষণা করে, কারণ এটি
ফলাফল পড়া কাউকে সবচেয়ে বেশি অবাক করতে পারে এমন বিস্তারিত।
ফরম্যাট সনাক্তকরণ
একটি স্ট্রিং ফরম্যাট যেমন তারিখ বা ইমেইল ঠিকানা কেবল তখনই দাবি করা হয় যখন প্রতিটি রেকর্ডে সেই অবস্থানে প্রতিটি স্ট্রিং একই প্যাটার্নের সাথে মিলে। এটি যা বাধা দেয় একটি ভাগ্যবান মানকে একটি সত্যিকারের মুক্ত পাঠ ফিল্ডকে একটি কঠোর তারিখ ফরম্যাটে পরিণত করতে, যা তখন প্রকৃত, বৈধ তথ্যকে প্রত্যাখ্যান করবে যখন এটি এমন মান দেখবে যা সত্যিই একটি তারিখ ছিল না।
এটি কী জানতে পারে না
জেনারেটরের কাছে কেবল সেই রেকর্ড আছে যেগুলো আপনি পেস্ট করেছেন।
এটি সেই রেকর্ড দেখতে পারে না যেগুলো আপনি পেস্ট করেননি, তাই
একটি ফিল্ড যা সবসময় আপনার নমুনায় একটি ধনাত্মক সংখ্যা ছিল minimum
ছাড়া ফিরবে না যতক্ষণ না আপনি নিজে যোগ করেন, এবং একটি enum-এর
মতো ফিল্ড enum কীওয়ার্ড হয়ে যাবে না যতক্ষণ না আপনি এটি যোগ
করেন। আউটপুটকে আপনার নমুনা যা প্রমাণ করে তার আকার হিসাবে মনে
করুন, এবং যেখানে আপনি জানেন প্রকৃত তথ্য ঢিলা সেখানে হাতে প্রসারিত
করুন।
ফলাফল পরীক্ষা
জেনারেট করা স্কিমা এবং একটি ডকুমেন্ট JSON Schema যাচাইকারী-এ পেস্ট করুন দেখতে যে এটি সত্যিই সেই ধরনের ডকুমেন্ট গ্রহণ করে কিনা আপনি যা প্রত্যাশা করেন।