Thuta Learning
ရှာဖွေရန်
GraphQL
BasicWeb Developmentbeginner

Mutations — GraphQL ထဲက Writes

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Mutations — GraphQL ထဲက Writes concept ကို နားလည်ရှင်းပြနိုင်ရန်
  • နမူနာ GraphQL query/code ကို ကိုယ်တိုင် run ပြီး output စစ်နိုင်ရန်
  • Tutorial Platform project နှင့် production scenario တွင် မှန်ကန်စွာအသုံးချနိုင်ရန်

နားလည်ထားရမယ့် အချက်

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 ချက်ချင်းလုပ်နိုင်ဖို့ပါ။

အတူတူ စမ်းရေးကြည့်မယ်

graphql
mutation PublishTutorial($id: ID!) {
  publishTutorial(id: $id) {
    id
    status
    publishedAt
  }
}

# variables: { "id": "42" }
You should see
`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 MutationsGraphQL

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Mutation ကို `query` operation ထဲမှာ read-side effect လုပ်တဲ့ field နဲ့ ရောသုံးမပါနှင့်—GraphQL spec အရ query fields ကို side-effect-free (idempotent read) လို့ယူဆထားပါတယ်။
  • နမူနာ query/mutation ကို production API ပေါ် တိုက်ရိုက်မစမ်းဘဲ local/test server နှင့် recoverable data ပေါ်တွင် အရင်အတည်ပြုပါ။

လေ့ကျင့်ခန်း

`archiveTutorial(id: ID!)` mutation တစ်ခု design လုပ်ပြီး updated `status` field ကို ပြန်ပေးသော selection set ရေးပါ။

You'll know it worked when: `mutation` operation တစ်ခု ရေးနိုင်ပြီး ပြောင်းလဲပြီးသား state ကို ပြန်ဖတ်နိုင်မည်။

Mutations — GraphQL ထဲက Writes | Thuta Learning