গ্রাফকিউএল (GraphQL)-এ Mutation হল একটি বিশেষ ধরনের অপারেশন যা ডেটার পরিবর্তন বা আপডেট করার জন্য ব্যবহৃত হয়। GraphQL-এর মাধ্যমে, কুয়েরির সাহায্যে আমরা ডেটা পড়তে পারলেও, Mutation এর মাধ্যমে ডেটা তৈরি, পরিবর্তন, অথবা মুছে ফেলতে পারি। এটি ক্লায়েন্টকে সার্ভারের ডেটা সম্পাদনা করার ক্ষমতা দেয় এবং এই প্রক্রিয়ায় আমরা ডেটার অবস্থা পরিবর্তন করতে পারি।
Mutation কী?
Mutation হল সেই GraphQL অপারেশন যা সার্ভারের ডেটা পরিবর্তন বা তৈরি করার জন্য ব্যবহৃত হয়। যেমন:
- নতুন ডেটা তৈরি করা (যেমন নতুন ইউজার তৈরি)
- পূর্ববর্তী ডেটা আপডেট করা (যেমন ইউজারের নাম বা ইমেইল পরিবর্তন)
- ডেটা মুছে ফেলা (যেমন একটি পোস্ট বা কমেন্ট মুছে ফেলা)
যেহেতু Mutation এর মাধ্যমে ডেটার পরিবর্তন ঘটানো হয়, এটি সাধারণত ক্লায়েন্ট থেকে একটি ইনপুট গ্রহণ করে এবং সার্ভার সেই অনুযায়ী ডেটা প্রসেস করে।
Mutation এর মাধ্যমে ডেটা পরিবর্তন
GraphQL-এ Mutation এর মাধ্যমে ডেটা পরিবর্তন করতে হলে, Mutation অপারেশনটি স্কিমাতে ডিফাইন করতে হয়। Mutation এর মাধ্যমে আপনি যেসব অপারেশন করতে পারবেন তা ক্লায়েন্টের প্রয়োজন অনুযায়ী নির্ধারণ করা হয়।
Mutation-এর সিনট্যাক্স:
mutation {
createUser(name: "John Doe", email: "john.doe@example.com") {
id
name
email
}
}
এই উদাহরণে, আমরা একটি createUser Mutation ব্যবহার করেছি, যা নতুন একটি ইউজার তৈরি করবে। এই Mutation এর মাধ্যমে:
nameএবংemailইনপুট প্রদান করা হয়েছে- রিটার্ন হিসাবে
id,name, এবংemailফেরত আসবে
Mutation এর উদাহরণ
ধরুন, আমরা একটি ব্লগ সিস্টেমে কাজ করছি, এবং আমরা চাই একটি নতুন পোস্ট তৈরি করতে। তাহলে আমরা একটি Mutation ব্যবহার করতে পারি যা পোস্ট তৈরি করবে এবং তৈরি হওয়া পোস্টের ডেটা রিটার্ন করবে।
Mutation এর উদাহরণ:
mutation {
createPost(title: "GraphQL Mutation Example", content: "This is an example of mutation in GraphQL.") {
id
title
content
}
}
এখানে:
createPostহল Mutation টাইপ যা নতুন পোস্ট তৈরি করবে।- ইনপুট হিসাবে
titleএবংcontentপ্রদান করা হয়েছে। - রিটার্ন ভ্যালু হিসাবে
id,title, এবংcontentফিল্ড ফিরিয়ে আনা হবে।
Mutation Result:
{
"data": {
"createPost": {
"id": "1",
"title": "GraphQL Mutation Example",
"content": "This is an example of mutation in GraphQL."
}
}
}
এখানে, নতুন পোস্ট তৈরি হয়েছে এবং তার সাথে id, title, এবং content ডেটা ফিরে এসেছে।
Mutation এর মাধ্যমে ডেটা আপডেট করা
Mutation ব্যবহার করে আপনি বিদ্যমান ডেটা আপডেটও করতে পারেন। ধরুন, আপনি একটি ইউজারের নাম পরিবর্তন করতে চান। এজন্য আপনি একটি Mutation ব্যবহার করতে পারেন।
Mutation Example:
mutation {
updateUser(id: "1", name: "John Smith") {
id
name
}
}
এখানে:
updateUserহল Mutation টাইপ যা ইউজারের নাম আপডেট করবে।idএবংnameইনপুট হিসাবে প্রদান করা হয়েছে।- রিটার্ন হিসেবে
idএবংnameপ্রদান করা হবে।
Mutation Result:
{
"data": {
"updateUser": {
"id": "1",
"name": "John Smith"
}
}
}
এখানে, ইউজারের নাম সফলভাবে আপডেট হয়েছে।
Mutation এর মাধ্যমে ডেটা মুছে ফেলা
Mutation এর মাধ্যমে আপনি ডেটা মুছেও ফেলতে পারেন। যেমন, আপনি একটি ব্লগ পোস্ট মুছে ফেলতে চান, তাহলে আপনি একটি deletePost Mutation ব্যবহার করতে পারেন।
Mutation Example:
mutation {
deletePost(id: "1") {
id
title
}
}
এখানে:
deletePostহল Mutation টাইপ যা একটি পোস্ট মুছে ফেলবে।idইনপুট হিসেবে প্রদান করা হয়েছে, যা মুছে ফেলা পোস্টের আইডি।- রিটার্ন হিসাবে
idএবংtitleপ্রদান করা হবে, যাতে নিশ্চিত হওয়া যায় যে কোন পোস্টটি মুছে ফেলা হয়েছে।
Mutation Result:
{
"data": {
"deletePost": {
"id": "1",
"title": "GraphQL Mutation Example"
}
}
}
এখানে, পোস্ট সফলভাবে মুছে ফেলা হয়েছে এবং তার id ও title রিটার্ন করা হয়েছে।
সারাংশ
Mutation GraphQL-এর একটি গুরুত্বপূর্ণ অংশ যা ডেটা পরিবর্তন, তৈরি বা মুছে ফেলতে ব্যবহৃত হয়। এটি Query থেকে আলাদা কারণ Query শুধুমাত্র ডেটা পড়তে ব্যবহৃত হয়, কিন্তু Mutation ডেটার অবস্থা পরিবর্তন করে। আপনি Mutation এর মাধ্যমে নতুন ডেটা তৈরি, পুরনো ডেটা আপডেট এবং ডেটা মুছতে পারবেন। এই প্রক্রিয়াটি API এর কার্যকারিতা এবং ডেটার নিয়ন্ত্রণের জন্য অত্যন্ত গুরুত্বপূর্ণ।
Read more