গ্রাফকিউএল (GraphQL)-এ Arguments এবং Variables দুটি গুরুত্বপূর্ণ কনসেপ্ট যা কুয়েরি এবং মিউটেশন অপারেশনগুলির মধ্যে ডেটা পাস করতে সাহায্য করে। এগুলি GraphQL-এ ডেটা ফিল্টার, সাজানো এবং কাস্টমাইজ করার একটি অত্যন্ত কার্যকরী উপায় প্রদান করে।
Arguments এর ব্যবহার
Arguments হল কুয়েরি বা মিউটেশন অপারেশনের সাথে প্যারামিটার বা ইনপুট ডেটা হিসেবে পাঠানো মান। GraphQL-এ, কুয়েরি বা মিউটেশন ফিল্ডগুলির জন্য arguments ব্যবহার করা হয়, যাতে ক্লায়েন্টরা সার্ভারের কাছে নির্দিষ্ট ডেটার জন্য অনুরোধ করতে পারে। এটি ডেটাকে ফিল্টার বা কাস্টমাইজ করতে সহায়ক।
Arguments এর ব্যবহারকারী কিছু গুরুত্বপূর্ণ উদাহরণ:
- ডেটা ফিল্টার করা:
আপনি যখন একটি কুয়েরি ব্যবহার করেন, তখন নির্দিষ্ট ডেটা চাওয়ার জন্য arguments ব্যবহার করতে পারেন। উদাহরণস্বরূপ, একটিUserকুয়েরি যদিageফিল্টার করে, তাহলে আপনি সেইageএর জন্য একটি আর্গুমেন্ট দিতে পারেন। - ডেটা সাজানো:
OrderByবাSortনামে একটি argument ব্যবহার করে আপনি ডেটা সাজানোর ক্রম নির্ধারণ করতে পারেন। - পাতিন ব্যবহার (Pagination):
Pagination এর জন্যlimitএবংoffsetনামে arguments ব্যবহৃত হয়, যাতে সার্ভার থেকে নির্দিষ্ট পরিমাণ ডেটা আনা যায়।
উদাহরণ:
{
users(age: 25, orderBy: "name") {
name
email
}
}
এই কুয়েরিতে age এবং orderBy আর্গুমেন্ট ব্যবহার করা হয়েছে, যাতে ২৫ বছর বয়সী ইউজারদের নাম এবং ইমেইল ঠিকানা নির্দিষ্টভাবে সাজানো থাকে।
Variables এর ব্যবহার
Variables হল ডাইনামিক উপায়ে কুয়েরি বা মিউটেশন অপারেশনগুলিতে ডেটা পাস করার পদ্ধতি। যখন আপনি কুয়েরি বা মিউটেশনটি অনেকবার চালাতে চান, কিন্তু প্রতিবার ভিন্ন ডেটা দিয়ে, তখন variables ব্যবহার করা হয়। এটি কুয়েরি বা মিউটেশন পুনরায় লেখার পরিবর্তে একটি সাধারণ কাঠামো তৈরি করতে সাহায্য করে, যেখানে ভেরিয়েবলগুলি বিভিন্ন মান দ্বারা প্রতিস্থাপিত হতে পারে।
Variables এর প্রধান সুবিধাগুলি হলো:
- ডাইনামিক কুয়েরি তৈরি:
আপনি একই কুয়েরি বা মিউটেশন বহুবার চালাতে পারেন বিভিন্ন মান দিয়ে, যা কোড পুনরাবৃত্তি কমাতে সহায়ক। - কোডের পুনঃব্যবহারযোগ্যতা:
ভেরিয়েবল ব্যবহার করে, আপনি কোডের পুনরাবৃত্তি এড়াতে পারেন এবং শুধুমাত্র ডেটার মান পরিবর্তন করে বিভিন্ন কুয়েরি চালাতে পারেন। - ক্লায়েন্ট-সার্ভার পারফরম্যান্স:
একাধিক ভেরিয়েবল সহ একক কুয়েরি ব্যবহার করলে সার্ভার শুধুমাত্র কুয়েরি কাঠামো একবার বিশ্লেষণ করে, তারপর ভেরিয়েবলগুলি প্রতিস্থাপন করে ফলাফল প্রদান করে। এটি সার্ভারের পারফরম্যান্সে ইতিবাচক প্রভাব ফেলে।
উদাহরণ:
query GetUsers($age: Int, $orderBy: String) {
users(age: $age, orderBy: $orderBy) {
name
email
}
}
এখানে $age এবং $orderBy হল ভেরিয়েবল। আপনি ভেরিয়েবলগুলি সার্ভারে পাঠানোর সময় মান প্রদান করতে পারবেন:
{
"age": 25,
"orderBy": "name"
}
এই কুয়েরি ভেরিয়েবলগুলির মাধ্যমে যেকোনো মান ব্যবহার করে ডাইনামিকভাবে চালানো যায়, এবং এতে কুয়েরির কাঠামো অপরিবর্তিত থাকে।
Arguments এবং Variables এর মধ্যে পার্থক্য
- Arguments কুয়েরি বা মিউটেশন ফিল্ডের মধ্যে সরাসরি প্যারামিটার হিসেবে ব্যবহৃত হয় এবং তা নির্দিষ্ট মান সরবরাহ করে।
- Variables ডাইনামিকভাবে কুয়েরি বা মিউটেশনকে পরিচালনা করার জন্য ব্যবহৃত হয় এবং এগুলি কুয়েরি পাঠানোর সময় বাইরে থেকে মান প্রদান করা হয়।
সারাংশ
Arguments এবং Variables গ্রাফকিউএল-এ ডেটা পরিচালনার অত্যন্ত শক্তিশালী উপায়। Arguments ব্যবহার করে আপনি কুয়েরি বা মিউটেশনে নির্দিষ্ট প্যারামিটার পাস করতে পারেন, যা ডেটা ফিল্টার, সাজানো বা কাস্টমাইজ করার জন্য উপকারী। অন্যদিকে, Variables আপনাকে ডাইনামিকভাবে কুয়েরি তৈরি এবং পুনরায় ব্যবহার করতে সাহায্য করে, যার ফলে কোডের পুনঃব্যবহারযোগ্যতা এবং সার্ভারের পারফরম্যান্স বৃদ্ধি পায়।
Read more