Directives কী এবং কেন প্রয়োজন?

GraphQL Directives - গ্রাফকিউএল (GraphQL) - Web Development

318

গ্রাফকিউএল (GraphQL) এর Directives হল বিশেষ ধরনের নির্দেশনা যা কুয়েরি বা মিউটেশন এর আচরণ নিয়ন্ত্রণ করতে ব্যবহার করা হয়। এটি ডেভেলপারদের গ্রাফকিউএল কুয়েরির মধ্যে কন্ডিশনাল লজিক যোগ করতে সহায়ক। নির্দেশিকাগুলি কুয়েরি বা মিউটেশনে সরাসরি অন্তর্ভুক্ত করা হয় এবং সাধারণত ডেটা রিটার্ন বা অনুসন্ধানের শর্তাবলী নিয়ন্ত্রণ করার জন্য ব্যবহৃত হয়।

গ্রাফকিউএলে কিছু বিল্ট-ইন নির্দেশিকা রয়েছে যেমন @include এবং @skip, যা কুয়েরির কার্যকারিতা পরিচালনা করতে সাহায্য করে, এবং আপনি চাইলে কাস্টম নির্দেশিকাও তৈরি করতে পারেন।


Directives কী?

Directives হল কুয়েরি বা মিউটেশন-এর মধ্যে নির্দিষ্ট শর্ত বা প্রক্রিয়া নির্ধারণ করতে ব্যবহৃত বিশেষ ট্যাগ। এগুলি কুয়েরি বা মিউটেশন ফিল্ডগুলিতে কন্ডিশনাল অপারেশন বা ফিল্টারিং করার জন্য ব্যবহার করা হয়। উদাহরণস্বরূপ, আপনি একটি কুয়েরি তৈরি করতে পারেন যা একটি নির্দিষ্ট শর্তের ভিত্তিতে কিছু ফিল্ড যোগ বা বাদ দেয়।

গ্রাফকিউএল-এ দুটি বিল্ট-ইন নির্দেশিকা রয়েছে:

  1. @include: একটি ফিল্ড বা অংশ কুয়েরি শুধুমাত্র তখনই অন্তর্ভুক্ত করতে ব্যবহৃত হয় যখন নির্দিষ্ট শর্ত পূর্ণ হয়।
  2. @skip: একটি ফিল্ড বা অংশ কুয়েরি থেকে বাদ দেওয়া হয় যদি নির্দিষ্ট শর্ত পূর্ণ হয়।

এছাড়া, আপনি কাস্টম নির্দেশিকাও তৈরি করতে পারেন যা আপনার কুয়েরির আরও নির্দিষ্ট আচরণ কাস্টমাইজ করতে সাহায্য করে।


বিল্ট-ইন Directives

@include Directive

@include নির্দেশিকা কুয়েরিতে ফিল্ড অন্তর্ভুক্ত করার জন্য শর্ত প্রদান করে। এটি কুয়েরি এডিট করার জন্য উপকারী যখন আপনি কেবল নির্দিষ্ট শর্তে কিছু তথ্য রিটার্ন করতে চান।

উদাহরণ:

query getUserInfo($includeEmail: Boolean!) {
  user(id: 1) {
    name
    email @include(if: $includeEmail)
  }
}

এখানে:

  • email ফিল্ডটি কেবল তখনই রিটার্ন হবে যখন if: $includeEmail শর্ত সত্য হবে।
  • আপনি যখন কুয়েরি করবেন, তখন includeEmail ভেরিয়েবলটি সত্য বা মিথ্যা সেট করতে হবে।

Query Example:

{
  "includeEmail": true
}

এটি email ফিল্ডটি রিটার্ন করবে।

@skip Directive

@skip নির্দেশিকা ফিল্ড বা অংশ কুয়েরি থেকে বাদ দিতে ব্যবহৃত হয় যদি শর্ত পূর্ণ হয়। এটি সাধারণত ব্যবহৃত হয় যখন আপনি কিছু ডেটা শর্তসাপেক্ষে না আনতে চান।

উদাহরণ:

query getUserInfo($skipEmail: Boolean!) {
  user(id: 1) {
    name
    email @skip(if: $skipEmail)
  }
}

এখানে:

  • email ফিল্ডটি কেবল তখনই রিটার্ন হবে না যদি skipEmail ভেরিয়েবলটি সত্য হয়।

Query Example:

{
  "skipEmail": true
}

এটি email ফিল্ডটি বাদ দেবে।


কাস্টম Directives

গ্রাফকিউএল-এ কাস্টম নির্দেশিকা তৈরি করা সম্ভব যা বিশেষ ব্যবহারিক শর্ত অনুযায়ী কুয়েরির আচরণ নিয়ন্ত্রণ করতে সহায়ক। কাস্টম নির্দেশিকা ব্যবহার করতে, আপনাকে প্রথমে গ্রাফকিউএল স্কিমায় নির্দেশিকার সংজ্ঞা তৈরি করতে হবে এবং তারপরে সেই নির্দেশিকাটি কুয়েরিতে ব্যবহার করতে হবে।

কাস্টম Directives তৈরি করা:

directive @deprecated(reason: String = "No longer supported") on FIELD_DEFINITION | ENUM_VALUE

এখানে:

  • @deprecated হল একটি কাস্টম নির্দেশিকা যা একটি ফিল্ড বা মানকে deprecated বা ব্যবহৃত না হওয়া অবস্থায় চিহ্নিত করে।

Directives কেন প্রয়োজন?

  1. কন্ডিশনাল লজিক প্রয়োগ (Conditional Logic): Directives ব্যবহার করে আপনি কুয়েরি বা মিউটেশনে কন্ডিশনাল লজিক প্রয়োগ করতে পারেন। উদাহরণস্বরূপ, আপনি কুয়েরি লেখার সময় সিদ্ধান্ত নিতে পারেন কোন তথ্য ফেরত দিবেন বা বাদ দেবেন।
  2. ডেটার নির্বাচন নিয়ন্ত্রণ (Control Data Selection): কিছু ক্ষেত্র কেবল তখনই কুয়েরি থেকে ফেরত আসবে যখন নির্দিষ্ট শর্ত পূর্ণ হয়। যেমন, ব্যবহারকারীর ইমেইল ঠিকানা কেবল তখনই ফেরত আসবে যখন ইউজার সেটি দেখতে চাইবে।
  3. ডেভেলপমেন্টের নমনীয়তা (Flexibility in Development): Directives ডেভেলপারদের জন্য কুয়েরিতে আরও নমনীয়তা প্রদান করে। আপনি যদি জানেন যে কোনও ফিল্ড বা ডেটা নির্দিষ্ট শর্তের অধীনে প্রয়োজন, তবে আপনি তা কুয়েরিতে অন্তর্ভুক্ত বা বাদ দিতে পারেন।
  4. ডেটা ম্যানেজমেন্ট সহজ করা (Ease in Data Management): যখন আপনি অনেক ধরনের ডেটা এবং শর্ত নিয়ে কাজ করছেন, তখন directives দ্বারা ডেটা ম্যানেজমেন্ট সহজ হয়। এটি কোডকে পরিষ্কার এবং কমপ্যাক্ট রাখে।

সারাংশ

Directives হল গ্রাফকিউএলে বিশেষ নির্দেশনা যা কুয়েরির আচরণ নিয়ন্ত্রণ করতে সহায়ক। @include এবং @skip হল দুটি বিল্ট-ইন নির্দেশিকা যা শর্ত অনুযায়ী ডেটা অন্তর্ভুক্ত বা বাদ দিতে সাহায্য করে। আপনি কাস্টম নির্দেশিকাও তৈরি করতে পারেন আপনার নির্দিষ্ট প্রয়োজনের জন্য। Directives গ্রাফকিউএলে কন্ডিশনাল লজিক প্রয়োগ, ডেটার নির্বাচন নিয়ন্ত্রণ এবং ডেভেলপমেন্টের নমনীয়তা বাড়ানোর জন্য অত্যন্ত গুরুত্বপূর্ণ।

Content added By
Promotion

Are you sure to start over?

Loading...