কীভাবে ব্যবহার করবেন
- আপনি একটি JSON নমুনা পেস্ট করুন, অথবা “নমুনা লোড করুন”-এ ক্লিক করুন।
- রুট schema-র title সেট করুন।
- Schema কপি বা ডাউনলোড করুন, তারপর format, pattern ও range-এর মতো constraint প্রয়োজনমতো যোগ করুন।
অপশনগুলোর ব্যাখ্যা
- রুট টাইপের নাম
- Schema-র title হিসেবে ব্যবহার করা হয়।
উদাহরণ
{"id": 1, "email": null} থেকে এমন একটি schema তৈরি হয় যাতে "id": {"type": "integer"}, "email": {"type": "null"} থাকে এবং দুটি কী-ই required-এ থাকে।
আরেকটি উদাহরণ
দুটি ব্যবহারকারীর রেকর্ড, যেখানে শুধু প্রথমটিতে ইমেইল আছে এবং manager কখনো কখনো null:
[
{ "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
{ "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]
রুট টাইপের নাম User দিলে তৈরি schema হয়:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } },
"manager": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
]
}
},
"required": ["id", "name", "tags", "manager"]
}
}
email required থেকে বাদ গেছে কারণ দ্বিতীয় রেকর্ডে এটি নেই, আর manager null বা অবজেক্ট দুটোই গ্রহণ করে কারণ নমুনায় দুটোই আছে। নমুনা ডেটা যত বৈচিত্র্যময়, schema তত নির্ভুল — একটির বদলে কয়েকটি রেকর্ড পেস্ট করুন।
প্রচলিত ব্যবহার
API ইনপুট যাচাই। Ajv (JavaScript) বা jsonschema (Python)-এর মতো ভ্যালিডেটরে schema লোড করুন এবং যে অনুরোধ মেলে না তা বাতিল করুন।
API নথিভুক্ত করা। শুরুর বিন্দু হিসেবে প্রপার্টিগুলো OpenAPI-এর components.schemas অংশে পেস্ট করুন।
এডিটরে স্বয়ংক্রিয় সম্পূরণ। VS Code ও JetBrains IDE কী-এর পরামর্শ দিতে এবং JSON কনফিগারেশন ফাইলের ভুল চিহ্নিত করতে JSON Schema ব্যবহার করতে পারে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
কোন কী-গুলো আবশ্যিক হিসেবে চিহ্নিত হয়?
যে কী প্রতিটি sample object-এ উপস্থিত থাকে। কোনো array-তে ভিন্ন কী-সহ object থাকলে, কিছু item-এ অনুপস্থিত কী-গুলো required তালিকা থেকে বাদ থাকে।
আপনি কি এটি OpenAPI-তে ব্যবহার করতে পারেন?
OpenAPI 3.1 JSON Schema 2020-12 ব্যবহার করে, তাই তৈরি হওয়া Schema-টি components/schemas-এর অধীনে রাখা যায়। OpenAPI 3.0-এর জন্য ["string", "null"]-এর মতো type array-কে nullable true-তে বদলে নিন।
এটি কি email বা date-time-এর মতো format শনাক্ত করে?
না। এটি শুধু type অনুমান করে। প্রয়োজন হলে format, pattern, minimum এবং অনুরূপ keyword হাতে যোগ করুন।
আমার JSON কি আপলোড হয়?
না। type আপনার browser-এ তৈরি হয়, তাই real data-সহ API response আপনার device-এই থাকে।
গোপনীয়তা
এই টুলটি পুরোপুরি আপনার ব্রাউজারে চলে। আপনার ফাইল ও লেখা আপনার ডিভাইসেই প্রসেস হয় এবং কখনো আমাদের সার্ভারে আপলোড হয় না।