GraphQL-এ, ডেটা গঠন করার জন্য Object Types এবং Fields গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি সাহায্যে, আপনি কিভাবে ডেটা ফেরত পাবে এবং ডেটার কাঠামো কেমন হবে, তা নির্ধারণ করতে পারেন। Object Types হল GraphQL স্কিমার মৌলিক নির্মাণ, যেখানে আপনি ডেটার ধরন এবং সম্পর্ক নির্ধারণ করতে পারেন। Fields হল Object Types এর ভেতরে থাকা নির্দিষ্ট ডেটা বা মেথড যা ক্লায়েন্টদের জন্য অ্যাক্সেসযোগ্য হয়।
Object Types
Object Types হল GraphQL স্কিমায় একটি নির্দিষ্ট ডেটা টাইপ বা অবজেক্টের বর্ণনা। প্রতিটি Object Type-এর মধ্যে এক বা একাধিক Field থাকে, যা ক্লায়েন্টরা কুয়েরি করতে পারে।
ধরা যাক, আমাদের একটি User নামক Object Type রয়েছে, যেটি একটি ব্যবহারকারীর তথ্য ধারণ করবে। এই Object Type-এর মধ্যে কিছু Fields থাকবে যেমন id, name, email, এবং age।
Object Type উদাহরণ:
type User {
id: ID
name: String
email: String
age: Int
}
এখানে:
Userএকটি Object Type যা ইউজারের তথ্য ধারণ করবে।- এর মধ্যে রয়েছে চারটি Field:
id,name,email, এবংage, যেখানে প্রতিটি ফিল্ডের ধরন নির্ধারণ করা হয়েছে (যেমন:String,Int,ID)।
Fields
Fields হল Object Type-এর ভেতরে থাকা ডেটা বা ফাংশন যেগুলি ক্লায়েন্ট কুয়েরি করতে পারে। প্রতিটি ফিল্ডের সাথে একটি নির্দিষ্ট ডেটা টাইপ যুক্ত থাকে। ক্লায়েন্ট যেকোনো ফিল্ড কুয়েরি করতে পারে এবং সেই ফিল্ডের জন্য সংশ্লিষ্ট ডেটা ফিরে পাবে।
উদাহরণস্বরূপ, একটি User Object Type-এ আমরা name, email, এবং age ফিল্ড থাকতে পারি, এবং ক্লায়েন্ট শুধুমাত্র যেটি চায় সেটি কুয়েরি করতে পারবে। যদি ক্লায়েন্ট শুধু name এবং email চায়, তাহলে শুধু ওই দুটি ফিল্ডের ডেটা ফেরত আসবে।
Fields উদাহরণ:
type Query {
users: [User]
}
এখানে:
Queryহল একটি Object Type, যা API-এর প্রধান এন্ট্রি পয়েন্ট হিসেবে কাজ করে।usersএকটি ফিল্ড যা অনেক User অবজেক্টের একটি অ্যারে ফিরিয়ে আনে। এখানেusersফিল্ডের ডেটা টাইপ হল[User], যা একটি User Object Type-এর অ্যারে।
Object Types এবং Fields এর সাথে কুয়েরি করা
একবার যখন আপনি Object Types এবং Fields সংজ্ঞায়িত করেন, তখন ক্লায়েন্ট কেবল প্রয়োজনীয় ফিল্ডগুলো কুয়েরি করে ডেটা পেতে পারে।
কুয়েরি উদাহরণ:
query {
users {
name
email
}
}
এই কুয়েরি সার্ভারকে বলছে যে, "আমাকে users এর তালিকা দিন, এবং প্রতিটি ব্যবহারকারীর name এবং email ফেরত দিন।" এখানে, age বা id ফিল্ডগুলো চাওয়া হয়নি, তাই সেগুলো ফিরিয়ে আনা হবে না।
স্নেহপূর্ণ ডেটার সাথে Object Types এবং Fields এর ব্যবহার
গ্রাফকিউএল স্কিমাতে আপনি একাধিক Object Type তৈরি করতে পারেন যেগুলোর মধ্যে সম্পর্ক থাকতে পারে। এটি GraphQL-কে সম্পর্কিত ডেটার জন্য শক্তিশালী ও নমনীয় করে তোলে। আপনি যদি কোনো ডেটার মধ্যে সম্পর্ক দেখতে চান, তাহলে Object Types এবং Fields কে রিলেটেড করে ব্যবহার করতে পারেন।
উদাহরণ (Relationship between Object Types):
type User {
id: ID
name: String
posts: [Post]
}
type Post {
id: ID
title: String
content: String
author: User
}
এখানে:
- User Object Type-এ একটি
postsফিল্ড রয়েছে, যা একটি Post Object Type-এর অ্যারে রিটার্ন করে। এটি বলে যে, একটি ব্যবহারকারীর এক বা একাধিক পোস্ট থাকতে পারে। - Post Object Type-এ একটি
authorফিল্ড রয়েছে, যা একটি User Object Type ফিরিয়ে আনে, এটি বলে যে, প্রতিটি পোস্টের একজন লেখক বা author থাকবে।
কুয়েরি উদাহরণ:
query {
users {
name
posts {
title
content
}
}
}
এই কুয়েরি সার্ভারকে বলছে, "মনে করুন, আমি সব User এর নাম চাচ্ছি এবং তাদের সব Post এর শিরোনাম এবং কনটেন্ট চাচ্ছি।"
সারাংশ
Object Types এবং Fields হল GraphQL স্কিমার প্রধান উপাদান যা ডেটার গঠন এবং ক্লায়েন্টের কুয়েরি করার পদ্ধতি নির্ধারণ করে। Object Types হল ডেটার ধরন এবং সম্পর্কের বর্ণনা, এবং Fields হল সেই Object Types-এর মধ্যে থাকা ডেটা বা মেথড। GraphQL এ আপনি Object Types এবং Fields ব্যবহার করে ডেটার কাঠামো তৈরি করতে পারেন, এবং ক্লায়েন্টরা শুধু তাদের প্রয়োজনীয় ডেটা কুয়েরি করে পেতে পারে।
Read more