Nested Queries এবং Complex Queries তৈরি করা

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

242

গ্রাফকিউএল (GraphQL) একটি অত্যন্ত শক্তিশালী API query ভাষা যা Nested Queries এবং Complex Queries এর মাধ্যমে ডেটার ভেতরের স্তরে যাওয়ার সুযোগ প্রদান করে। এতে, আপনি সহজেই সম্পর্কিত ডেটা একাধিক স্তর থেকে একযোগে অ্যাক্সেস করতে পারেন, যা REST API-তে অনেকটা চ্যালেঞ্জিং হতে পারে।


Nested Queries কী?

Nested Queries হল এমন কুয়েরি যা একাধিক স্তরে থাকা ডেটাকে একসাথে আনার জন্য ব্যবহৃত হয়। অর্থাৎ, যখন একটি কুয়েরি অন্য কুয়েরি বা ফিল্ডের মধ্যে ঢোকানো হয়, তখন সেটি nested query হিসেবে পরিচিত।

GraphQL-এ আপনি একাধিক সম্পর্কিত ডেটা একটি কুয়েরির মাধ্যমে সংগ্রহ করতে পারেন। এটি ডেটার সম্পর্কের ভিত্তিতে ডেটা অ্যাক্সেসের সুবিধা দেয়, যেমন একটি User এবং তার Posts বা Comments

Nested Query Example:

ধরা যাক, আমাদের একটি User টাইপ এবং তার সম্পর্কিত Posts এবং প্রতিটি Post এর Comments আছে।

type User {
  id: ID!
  name: String!
  posts: [Post]
}

type Post {
  id: ID!
  title: String!
  content: String!
  comments: [Comment]
}

type Comment {
  id: ID!
  text: String!
}

এখন, আমরা যদি একটি User এর posts এবং প্রতিটি Post এর comments চাই, তাহলে আমরা একটি nested query করতে পারি:

query {
  user(id: "1") {
    name
    posts {
      title
      comments {
        text
      }
    }
  }
}

এই কুয়েরির মাধ্যমে, আমরা প্রথমে User এর name পেয়ে যাব, তারপর User এর posts এবং প্রতিটি Post এর comments এর text পেতে পারব।

Nested Query Output:

{
  "data": {
    "user": {
      "name": "John Doe",
      "posts": [
        {
          "title": "My first post",
          "comments": [
            { "text": "Great post!" },
            { "text": "Very informative." }
          ]
        },
        {
          "title": "Another post",
          "comments": [
            { "text": "Nice read!" }
          ]
        }
      ]
    }
  }
}

এখানে, আমরা দেখতে পাচ্ছি যে User এর posts এবং তাদের comments সম্পর্কিত ডেটা একসঙ্গে পাওয়া গেছে।


Complex Queries কী?

Complex Queries হল এমন কুয়েরি যা একাধিক ভিন্ন ডেটা টাইপ এবং ফিল্ডের সমন্বয়ে তৈরি করা হয়। এগুলো সাধারণত একাধিক সম্পর্কিত ডেটার একত্রিত তথ্য প্রদান করতে ব্যবহৃত হয়। এই ধরনের কুয়েরি গুলি বেশী পরিমাণে যুক্ত এবং একাধিক ফিল্ডের সমন্বয়ে ডেটা ফিরিয়ে আনে।

গ্রাফকিউএলে complex queries তৈরি করতে, আপনি একাধিক টাইপের কুয়েরি, মিউটেশন এবং সাবস্ক্রিপশন ব্যবহার করতে পারেন এবং সেই ডেটার মধ্যে বিভিন্ন সম্পর্কও নির্দেশ করতে পারেন।

Complex Query Example:

ধরা যাক, আমাদের একটি User টাইপ আছে, যাদের posts, comments, এবং followers সম্পর্কিত ডেটা প্রয়োজন। এখন, আমরা যদি চাই User এর নাম, তার পোস্টের শিরোনাম, প্রতিটি পোস্টের মন্তব্য এবং তার ফলোয়ারের নাম, তাহলে এটি একটি complex query হবে।

query {
  user(id: "1") {
    name
    posts {
      title
      comments {
        text
      }
    }
    followers {
      name
    }
  }
}

এখানে, আমরা একসাথে User এর name, তার posts এর title, প্রতিটি Post এর comments এর text, এবং followers এর name নিয়ে আসছি।

Complex Query Output:

{
  "data": {
    "user": {
      "name": "John Doe",
      "posts": [
        {
          "title": "My first post",
          "comments": [
            { "text": "Great post!" },
            { "text": "Very informative." }
          ]
        },
        {
          "title": "Another post",
          "comments": [
            { "text": "Nice read!" }
          ]
        }
      ],
      "followers": [
        { "name": "Alice" },
        { "name": "Bob" }
      ]
    }
  }
}

এখানে, User এর সম্পূর্ণ তথ্য একাধিক সম্পর্কিত ডেটার সাথে ফিরিয়ে আনা হয়েছে।


Nested এবং Complex Queries এর সুবিধা

  1. অতিরিক্ত API কল কমানো:
    Nested এবং Complex Queries গ্রাফকিউএলে একক কুয়েরির মাধ্যমে সম্পর্কিত সমস্ত ডেটা ফেরত আনতে পারে, যা REST API-তে একাধিক রাউন্ড-ট্রিপের প্রয়োজন হতে পারে। ফলে কর্মক্ষমতা বাড়ে এবং নেটওয়ার্ক ব্যান্ডউইথ কমে।
  2. নমনীয় ডেটা আনা:
    গ্রাফকিউএলে আপনি শুধুমাত্র প্রয়োজনীয় ডেটার জন্য কুয়েরি করতে পারেন, এমনকি nested স্তরগুলিতেও। এতে আপনি প্রয়োজনীয় তথ্য চয়ন করতে পারেন এবং অবাঞ্ছিত ডেটা ছাড়া সঠিক তথ্য পেতে পারেন।
  3. সহজ ডেটা সম্পর্ক:
    Nested Queries-এ আপনি সহজেই ডেটার মধ্যে সম্পর্ক তৈরি করতে পারেন, যেমন একটি Post এর comments এবং তার সাথে সম্পর্কিত অন্যান্য তথ্য।
  4. মোবাইল অ্যাপ্লিকেশন পারফরম্যান্স উন্নত করা:
    একটি মোবাইল অ্যাপ্লিকেশনে একাধিক API কলের বদলে একক কুয়েরির মাধ্যমে একাধিক সম্পর্কিত ডেটা আনা যায়, যা অ্যাপ্লিকেশনের পারফরম্যান্স বাড়ায়।

সারাংশ

Nested Queries এবং Complex Queries গ্রাফকিউএল এর শক্তিশালী বৈশিষ্ট্য, যা ক্লায়েন্টদের ডেটার মধ্যে গভীর সম্পর্ক এবং একাধিক স্তরের ডেটা সহজে একসাথে এক কুয়েরির মাধ্যমে অ্যাক্সেস করতে দেয়। Nested Queries এর মাধ্যমে আপনি সম্পর্কিত ডেটার গভীরে প্রবেশ করতে পারেন, এবং Complex Queries এর মাধ্যমে একাধিক টাইপ এবং সম্পর্কিত ডেটার সমন্বয়ে বড়, আরো ডাইনামিক কুয়েরি তৈরি করতে পারেন। এর মাধ্যমে API এর কার্যকারিতা, কর্মক্ষমতা এবং নমনীয়তা বৃদ্ধি পায়।

Content added By
Promotion

Are you sure to start over?

Loading...