JSON Schema: মূল বিষয় থেকে প্রোডাকশন
কি-ওয়ার্ড অনেক, কিন্তু প্রতিদিন ব্যবহৃত হয় কেবল ডজনখানেক। type/properties/required/$ref ঠিক করুন, এরর মেসেজ ভালো সামলান, তাহলে বাস্তবের আশি শতাংশ ঢাকা পড়ে।
JSON Schema দিয়ে আপনার ডেটার আকৃতি বর্ণনা করুন, মৌখিক চুক্তিকে চালনাযোগ্য ভ্যালিডেশন বানান, আর তা দিয়ে TypeScript টাইপ ও ফর্ম জেনারেশন চালান।
7টি নিবন্ধকি-ওয়ার্ড অনেক, কিন্তু প্রতিদিন ব্যবহৃত হয় কেবল ডজনখানেক। type/properties/required/$ref ঠিক করুন, এরর মেসেজ ভালো সামলান, তাহলে বাস্তবের আশি শতাংশ ঢাকা পড়ে।
টাইপ ও স্কিমা প্রতিটি একটি অংশ ঢাকে: একটি কম্পাইল সময়ে, একটি রানটাইমে। প্রশ্ন কোনটি বাছবেন তা নয়, বরং দুইটিকে কীভাবে স্বয়ংক্রিয়ভাবে সিঙ্কে রাখবেন।
জেনারেট করা স্কিমা প্রায়ই বৈধ ডেটা আটকায়। সমৃদ্ধ নমুনা কেন আরও খারাপ স্কিমা দেয়, তারপর কার্যপ্রণালী: বহু-রেকর্ড স্যাম্পলিং, সেমান্টিক সম্পূর্ণকরণ, এরর চিহ্নিতকরণ।
$ref পুনর্ব্যবহার সমাধান করে, allOf ও oneOf গঠন সমাধান করে, আর দুইটি একসঙ্গে স্তূপ করা হলেই ভাঙে। $id, $defs, শর্তাধীন, পুনরাবৃত্তি, বান্ডলিং ও ডিবাগিং।
ভ্যালিডেটর মেশিন এরর দেয়; ব্যবহারকারী জানতে চায় কোন ইনপুট বক্স ভুল। Ajv errors অ্যারে, instancePath বনাম schemaPath, গ্রুপিং ও লেখার ধরন।
যাচাই পাস মানে পরিষ্কার ডেটা নয়। Pydantic ডিফল্টভাবে অজানা ফিল্ড উপেক্ষা করে, Zod সেগুলো সরিয়ে দেয়, Ajv ছেড়ে দেয় — ভুল প্যারামিটার ও টাইপো কী নীরবে পার হয়ে যায়। এই নিবন্ধ নীরব গ্রহণের তিনটি রূপ দেখায় এবং সম্পূর্ণ পদ্ধতি দেয়: অবজেক্ট বন্ধ করা, কোয়ার্সন নিয়ন্ত্রণ, প্রতিটি নেস্টিং স্তর শক্ত করা।
স্কিমা লেখা শেষ হওয়াই শেষ নয় — সেখান থেকেই অবনতি শুরু হয়। একটা টাইপো নীরবে ভ্যালিডেশন শিথিল করে, একটা রিফ্যাক্টরিং সব ফিক্সচার ভেঙে দেয়। এই নির্দেশিকায় একটি বাস্তবসম্মত কন্ট্রাক্ট টেস্টিং কাঠামো ব্যাখ্যা করা হয়েছে: পজিটিভ, নেগেটিভ ও স্ন্যাপশট ফিক্সচার, স্কিমা নিজের লিন্ট, একবার কম্পাইল করে পুনর্ব্যবহার এবং চারটি CI গেট যা কন্ট্রাক্ট ভাঙাকে লাল বিল্ডে পরিণত করে।