গ্রাফকিউএল (GraphQL) এর মধ্যে Non-null এবং List টাইপ ডেটা মডেলিং এর গুরুত্বপূর্ণ অংশ। এগুলি আপনাকে ডেটার ধরন এবং তার আচরণ নির্ধারণ করতে সহায়ক। Non-null টাইপ নির্দিষ্ট করে যে একটি ফিল্ড কখনোই null হতে পারে না, এবং List টাইপ ব্যবহার করে একাধিক মানের একটি সংগ্রহ সংজ্ঞায়িত করা হয়। এই দুটি ধারণা GraphQL স্কিমা ডিজাইনকে আরও শক্তিশালী এবং সুনির্দিষ্ট করে তোলে।
Non-null টাইপ
Non-null টাইপ গ্রাফকিউএল এর এমন একটি বৈশিষ্ট্য যা নিশ্চিত করে যে, একটি ফিল্ড কখনও null হবে না। এটি নিশ্চিত করতে, টাইপের শেষে ! চিহ্ন যুক্ত করা হয়। এর মাধ্যমে আপনি বলছেন যে, এই ফিল্ডটির জন্য অবশ্যই একটি মান প্রদান করা হবে, তা null হতে পারবে না।
Non-null টাইপের ব্যবহার
যেমন ধরুন, আপনি একটি ইউজারের নাম এবং বয়স ইনফরমেশন চান, এবং আপনি চান যে নাম কখনও null না হয়, তবে বয়স null হতে পারে (অর্থাৎ, বয়স ঐচ্ছিক হতে পারে)। তখন আপনি Non-null টাইপ ব্যবহার করতে পারেন।
উদাহরণ:
type User {
name: String!
age: Int
}
এখানে:
name: String!–nameফিল্ডটি কখনোnullহতে পারবে না, এটি একটি অপরিহার্য মান হিসেবে চিহ্নিত।age: Int–ageফিল্ডটিnullহতে পারে, কারণ এটি অপরিহার্য নয়।
এটি একটি শক্তিশালী পদ্ধতি, যা ডেটা গ্রহণের সময় নির্দিষ্ট মানের অগ্রাধিকারের ওপর জোর দেয়।
Non-null এর সুবিধা
- ডেটা ভ্যালিডেশন: এটি নিশ্চিত করে যে আপনি কখনো অকার্যকর বা অসম্পূর্ণ ডেটা গ্রহণ করছেন না।
- আগ্রহপূর্ণ তথ্য: ব্যবহারকারীদের এমন ফিল্ডে
nullমান না দিতে বাধ্য করা, যেগুলি গুরুত্বপূর্ণ তথ্য হিসেবে গণ্য হয়।
List টাইপ
List টাইপ ব্যবহার করে আপনি একাধিক মানের একটি সংগ্রহ সংজ্ঞায়িত করতে পারেন। GraphQL এ, একটি List টাইপ তৈরি করতে, একটি টাইপের সঙ্গে [] ব্যবহার করা হয়। এটি ক্লায়েন্টকে একাধিক আইটেমের তালিকা ফেরত পাঠানোর অনুমতি দেয়।
List টাইপের ব্যবহার
ধরুন, আপনি একটি User টাইপ তৈরি করেছেন এবং আপনি চান যে একজন ইউজারের একাধিক ফোন নম্বর থাকতে পারে। এখানে আপনি List টাইপ ব্যবহার করতে পারেন।
উদাহরণ:
type User {
name: String!
phoneNumbers: [String]
}
এখানে:
phoneNumbers: [String]– এটি একটি List টাইপ, যা String মানগুলির একটি তালিকা হবে। এখানে আপনি একটি বা একাধিক ফোন নম্বর প্রদান করতে পারেন।nullমান গ্রহণ করার সুযোগও রয়েছে।
Non-null List টাইপ
এছাড়া, আপনি যদি চান যে একটি List কখনও খালি (empty) না থাকে এবং প্রত্যেকটি আইটেম অবশ্যই উপস্থিত থাকতে হবে, তবে আপনি Non-null List ব্যবহার করতে পারেন। এর জন্য আপনি ! চিহ্নের মাধ্যমে List-এর মধ্যে থাকা প্রতিটি আইটেমের মানকে অপরিহার্য করতে পারেন।
উদাহরণ:
type User {
name: String!
phoneNumbers: [String!]!
}
এখানে:
[String!]!– এটি একটি Non-null List টাইপ, যেখানে তালিকা কখনোnullহতে পারবে না এবং এর প্রতিটি আইটেম (যেমন ফোন নম্বর) অবশ্যইnullহতে পারবে না। এর মানে হলো, ইউজারের অবশ্যই একাধিক ফোন নম্বর থাকতে হবে এবং কোনো ফোন নম্বরnullহতে পারবে না।
List টাইপের সুবিধা
- একাধিক মানের সংগ্রহ: এটি ব্যবহার করে আপনি একাধিক মান বা আইটেম ফেরত পাঠাতে পারবেন, যা সাধারণত অ্যারের মতো কাজ করে।
- ডেটা ফিল্ডের অতি নমনীয়তা: List টাইপ ডেটার গঠন আরো নমনীয় করে তোলে, যেমন একাধিক ফোন নম্বর বা পছন্দের তালিকা।
Non-null এবং List টাইপের একত্রিত ব্যবহার
এখন, যদি আপনি চান যে একটি ফিল্ডে একাধিক মান (List) থাকতে হবে এবং প্রতিটি মান Non-null হওয়া উচিত, তাহলে আপনি Non-null List টাইপ ব্যবহার করতে পারেন।
উদাহরণ:
type User {
name: String!
phoneNumbers: [String!]!
}
এখানে:
name: String!– ইউজারের নাম কখনোnullহতে পারে না।phoneNumbers: [String!]!– ইউজারের একাধিক ফোন নম্বর থাকতে হবে এবং প্রতিটি ফোন নম্বরnullহতে পারবে না।
এভাবে আপনি আরও স্পেসিফিক ডেটা যাচাই এবং শ্রেণীবদ্ধকরণ করতে পারেন।
সারাংশ
Non-null এবং List টাইপগুলি GraphQL স্কিমার মধ্যে গুরুত্বপূর্ণ ভূমিকা পালন করে, যেখানে Non-null টাইপ ফিল্ডের জন্য মানের অপরিহার্যতা নির্ধারণ করে এবং List টাইপ একাধিক মানের তালিকা পরিচালনা করতে সহায়ক। এই দুটি বৈশিষ্ট্য ক্লায়েন্টের ডেটার গুণগত মান এবং ডেটার কাঠামো সুনির্দিষ্টভাবে নিশ্চিত করতে সাহায্য করে। Non-null টাইপ ডেটার অভাব এবং List টাইপ একাধিক মানের সাপোর্ট প্রদান করে, যা GraphQL এর ডেটা মডেলিংকে আরও শক্তিশালী এবং নমনীয় করে তোলে।
Read more