গ্রাফকিউএল (GraphQL) একটি শক্তিশালী API query ভাষা, যা ডেটা অনুসন্ধানের জন্য একটি নির্দিষ্ট কাঠামো এবং সিনট্যাক্স প্রদান করে। GraphQL-এর কুয়েরি গুলি সাধারণত স্ট্রাকচারড (Structured) এবং ফ্লেক্সিবল (Flexible) থাকে, যার মাধ্যমে আপনি খুব সহজেই ডেটার বিভিন্ন অংশ চেয়ে নিতে পারেন। GraphQL কুয়েরি লেখার সময়, ডেভেলপাররা ডেটার কাঠামো অনুসরণ করে নির্দিষ্ট ফিল্ড বা রিলেশন চেয়ে নিতে পারে, যা REST API-এর তুলনায় অনেক বেশি কার্যকরী এবং নির্দিষ্ট।
গ্রাফকিউএল কুয়েরি স্ট্রাকচার (GraphQL Query Structure)
একটি গ্রাফকিউএল কুয়েরি মূলত তিনটি প্রধান অংশে বিভক্ত থাকে:
- Root Field (মূল ক্ষেত্র):
প্রতিটি কুয়েরি একটি মূল ক্ষেত্র (root field) দিয়ে শুরু হয়, যা গ্রাফকিউএল স্কিমায় সংজ্ঞায়িত থাকে। উদাহরণস্বরূপ, একটিusersকুয়েরি যেটি সমস্ত ইউজারদের তথ্য ফিরিয়ে আনে। - Fields (ফিল্ডস):
মূল ক্ষেত্রের মধ্যে যে ফিল্ডগুলি প্রয়োজন, সেগুলি কুয়েরিতে উল্লেখ করতে হয়। ফিল্ডগুলি নির্ধারণ করে যে কোন তথ্য বা ডেটা আপনি চান। উদাহরণস্বরূপ, আপনি ইউজার নাম, ইমেইল বা অন্য কোনও ফিল্ড চেয়ে নিতে পারেন। - Arguments (আর্গুমেন্টস):
কিছু ক্ষেত্র আর্গুমেন্ট নিতে পারে। উদাহরণস্বরূপ, একটি কুয়েরি হতে পারে যেখানে আপনি একটি নির্দিষ্ট ইউজার ID অনুসারে ইউজারের তথ্য চাচ্ছেন।
গ্রাফকিউএল কুয়েরি সিনট্যাক্স (GraphQL Query Syntax)
GraphQL কুয়েরির সিনট্যাক্স খুব সহজ এবং পরিষ্কার। সাধারণত একটি কুয়েরি তিনটি মূল অংশ নিয়ে গঠিত থাকে:
- প্রশ্নের শুরু (Query Start):
কুয়েরি একটি{}ব্রেসের মধ্যে থাকে এবংqueryশব্দটি দিয়ে শুরু হতে পারে, তবে এটা ঐচ্ছিক। - ফিল্ড নির্বাচন (Field Selection):
কুয়েরির মধ্যে আপনি যে ফিল্ডগুলি চাচ্ছেন তা নির্বাচন করতে হয়। - বহু-স্তরের ফিল্ড (Nested Fields):
আপনি একাধিক স্তরের মধ্যে সম্পর্কিত ফিল্ডের জন্য কুয়েরি করতে পারেন, যাকে "নেস্টেড কুয়েরি" বলা হয়।
কুয়েরি লেখার উদাহরণ (Example of a GraphQL Query)
ধরা যাক, একটি users কুয়েরি তৈরি করতে হবে যা ইউজারদের নাম এবং ইমেইল ফেরত আনবে।
{
users {
name
email
}
}
এখানে:
usersমূল ক্ষেত্র (root field), যা সব ইউজারদের তথ্য ফেরত আনে।nameএবংemailহল ফিল্ডস, যেগুলি আপনি ইউজারদের সম্পর্কে জানতে চান।
আর্গুমেন্ট সহ কুয়েরি (Query with Arguments)
ধরা যাক, আপনি একটি নির্দিষ্ট ইউজার আইডি অনুযায়ী ইউজারের তথ্য চাচ্ছেন:
{
user(id: "1") {
name
email
}
}
এখানে:
user(id: "1")একটি আর্গুমেন্ট সহ মূল ক্ষেত্র, যেখানেidআর্গুমেন্ট প্রদান করা হয়েছে। এটি ইউজারকে তার আইডি দিয়ে সনাক্ত করবে।
নেস্টেড কুয়েরি (Nested Query)
একটি কুয়েরি যা ইউজারের সাথে তার পোষ্ট সম্পর্কিত তথ্যও ফিরিয়ে আনে:
{
users {
name
posts {
title
content
}
}
}
এখানে:
usersমূল ক্ষেত্র, যেখানে ইউজারের নাম পাওয়া যাবে।postsইউজারের পোষ্টের তালিকা, যা একটি নেস্টেড ফিল্ড। এখানে,titleএবংcontentফিল্ডগুলিও চাওয়া হয়েছে।
বহু ফিল্ডস একসাথে (Multiple Fields at Once)
একটি কুয়েরি যা একাধিক ফিল্ড একসঙ্গে চেয়ে নেয়:
{
user(id: "2") {
name
email
age
}
}
এখানে:
- আপনি
name,email, এবংageফিল্ডগুলো একসঙ্গে চেয়ে নিয়েছেন।
সারাংশ
গ্রাফকিউএল কুয়েরি লেখার সময় আপনাকে একটি পরিষ্কার এবং স্ট্রাকচারড সিনট্যাক্স অনুসরণ করতে হয়। মূল ক্ষেত্র থেকে শুরু করে, নির্দিষ্ট ফিল্ড এবং আর্গুমেন্ট প্রদান করে আপনি ডেটা চেয়ে নিতে পারেন। নেস্টেড ফিল্ড এবং বহুবিধ কুয়েরি পদ্ধতির মাধ্যমে গ্রাফকিউএল খুবই শক্তিশালী ও নমনীয় উপায়ে ডেটা অ্যাক্সেস এবং ব্যবস্থাপনা করতে সাহায্য করে।
Read more