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

Arguments နှင့် Variables

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

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

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

GraphQL field တိုင်းက argument လက်ခံနိုင်ပါတယ်—`tutorial(id: "42")` လို syntax ဖြင့် field တစ်ခုချင်းကို parameterize လုပ်နိုင်ပါတယ်။ Value ကို query string ထဲ တိုက်ရိုက် hardcode မလုပ်ဘဲ `$id: ID!` လို variable declare လုပ်ပြီး request တစ်ခုချင်းစီမှာ variables JSON object သီးခြားပို့ရင် client code က query string ကို reuse လုပ်နိုင်ပြီး injection risk လည်းလျော့ပါတယ်။ Default value (`$includeAuthor: Boolean = true`) နှင့် `@include`/`@skip` directives ဖြင့် conditional field inclusion ကိုပါ ထိန်းနိုင်ပါတယ်။

လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်

Tutorial Platform frontend က `TutorialById` query ကို component တစ်ခုတည်းကနေ id အမျိုးမျိုးနဲ့ ပြန်သုံးမယ်—query string တစ်ခုတည်းရှိပြီး variables ပဲပြောင်းမယ်။ Mobile client က author bio မလိုချင်ရင် `$includeAuthor: false` ပို့ပြီး `@include(if: $includeAuthor)` directive က author sub-selection ကို skip လုပ်စေမယ်။

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

graphql
query TutorialById($id: ID!, $includeAuthor: Boolean = true) {
  tutorial(id: $id) {
    title
    summary
    author @include(if: $includeAuthor) {
      name
    }
  }
}

# variables: { "id": "42", "includeAuthor": false }
You should see
Argument ပါသော field နှင့် reusable variable-based query တစ်ခုကို ရေးနိုင်မည်။

၅ မိနစ် စမ်းကြည့်

`$difficulty: Difficulty` variable သုံးပြီး `tutorials(difficulty: $difficulty)` query တစ်ခုရေးပြီး variables value နှစ်မျိုးနဲ့ run ကြည့်ပါ။

သတိလေးတစ်ချက်

Value ကို query string ထဲ တိုက်ရိုက် string concatenate လုပ်ပြီးမပို့ပါနှင့်—user input ပါလာရင် injection/caching ပြဿနာဖြစ်နိုင်ပါတယ်။ Variables ကိုသုံးပါ။

GraphQL — Queries and MutationsGraphQL

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

  • Value ကို query string ထဲ တိုက်ရိုက် string concatenate လုပ်ပြီးမပို့ပါနှင့်—user input ပါလာရင် injection/caching ပြဿနာဖြစ်နိုင်ပါတယ်။ Variables ကိုသုံးပါ။
  • နမူနာ query/mutation ကို production API ပေါ် တိုက်ရိုက်မစမ်းဘဲ local/test server နှင့် recoverable data ပေါ်တွင် အရင်အတည်ပြုပါ။

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

`$difficulty: Difficulty` variable သုံးပြီး `tutorials(difficulty: $difficulty)` query တစ်ခုရေးပြီး variables value နှစ်မျိုးနဲ့ run ကြည့်ပါ။

You'll know it worked when: Argument ပါသော field နှင့် reusable variable-based query တစ်ခုကို ရေးနိုင်မည်။

Arguments နှင့် Variables | Thuta Learning