နားလည်ထားရမယ့် အချက်
GraphQL မှာ data ဖတ်တာကို `query`, data ပြောင်းလဲတာကို `mutation` operation type ဖြင့် ခွဲထားပါတယ်။ Query fields များက parallel execute လုပ်ပေမယ့် top-level mutation fields များက serial (တစ်ခုပြီးမှ တစ်ခု) execute လုပ်ပါတယ်—side effect order ကို predictable ဖြစ်စေပါတယ်။ Convention အရ mutation တစ်ခုက ပြောင်းလဲပြီးသား object ကို ပြန်ပေးသင့်ပါတယ်—client က follow-up query ထပ်မခေါ်ဘဲ updated state ကို ချက်ချင်းမြင်ရအောင်ပါ။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Tutorial Platform မှာ author က tutorial တစ်ခုကို publish လုပ်ရင် `publishTutorial(id: $id)` mutation ခေါ်ပြီး updated `status` နှင့် `publishedAt` ကို ချက်ချင်းပြန်ရမယ်—frontend က optimistic UI update ချက်ချင်းလုပ်နိုင်ဖို့ပါ။
အတူတူ စမ်းရေးကြည့်မယ်
mutation PublishTutorial($id: ID!) {
publishTutorial(id: $id) {
id
status
publishedAt
}
}
# variables: { "id": "42" }`mutation` operation တစ်ခု ရေးနိုင်ပြီး ပြောင်းလဲပြီးသား state ကို ပြန်ဖတ်နိုင်မည်။၅ မိနစ် စမ်းကြည့်
`archiveTutorial(id: ID!)` mutation တစ်ခု design လုပ်ပြီး updated `status` field ကို ပြန်ပေးသော selection set ရေးပါ။
သတိလေးတစ်ချက်
Mutation ကို `query` operation ထဲမှာ read-side effect လုပ်တဲ့ field နဲ့ ရောသုံးမပါနှင့်—GraphQL spec အရ query fields ကို side-effect-free (idempotent read) လို့ယူဆထားပါတယ်။
GraphQL — Queries and Mutations — GraphQL