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

Getting Started — GraphQL Course လမ်းညွှန်

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

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

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

GraphQL က API များအတွက် query language တစ်ခုနဲ့ server-side runtime တစ်ခုဖြစ်ပါတယ်။ REST မှာ endpoint တစ်ခုစီက fixed shape data ပြန်ပေးပေမယ့် GraphQL မှာတော့ client က request တစ်ခုထဲမှာ ကိုယ်လိုချင်တဲ့ fields များကိုတိတိကျကျရွေးချယ်နိုင်ပါတယ်။ ဒါကြောင့် mobile app က field နည်းနည်းပဲလိုချင်ပေမယ့် REST endpoint က object တစ်ခုလုံးပြန်ပေးတဲ့ over-fetching နဲ့ nested data ရဖို့ endpoint အများကြီး ခေါ်ရတဲ့ under-fetching ပြဿနာနှစ်ခုလုံးကို ဖြေရှင်းပေးနိုင်ပါတယ်။ GraphQL ကိုယ်တိုင်က database မဟုတ်ဘဲ existing data sources (SQL database၊ REST API၊ microservices) အပေါ်မှာတည်ဆောက်ထားတဲ့ layer တစ်ခုသာဖြစ်ပါတယ်။

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

ဒီ course တစ်ခုလုံးမှာ Tutorial Platform ဆိုတဲ့ blog/course-catalog project တစ်ခုကို running example အဖြစ်သုံးသွားမယ်။ REST version မှာ tutorial card list ကို ဖတ်ရင် author bio၊ full lesson content အားလုံး ပါလာတတ်ပေမယ့် GraphQL version မှာတော့ card view အတွက် title နဲ့ summary ကိုပဲ တောင်းနိုင်ပါတယ်။ Course roadmap အနေနဲ့ schema/types → queries/mutations → intermediate patterns (pagination, N+1) → Apollo Server/Client → production concerns (auth, federation, performance) ဆီအထိ တစ်ဆင့်ချင်းသွားမယ်။

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

text
Client
  |
  |  POST /graphql  { query: "{ tutorial(id:1){ title } }" }
  v
GraphQL Server (single endpoint)
  |
  |  resolvers route each field
  v
Resolvers ---> PostgreSQL (tutorials, authors)
         ---> REST service (analytics)
         ---> Cache (Redis)
You should see
GraphQL က ဘယ်ပြဿနာကိုဖြေရှင်းလဲနှင့် ဒီ course ရဲ့ project ကို ရှင်းပြနိုင်မည်။

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

မိမိသိထားတဲ့ REST API တစ်ခုကို စဉ်းစားပြီး client တစ်ခုအတွက် over-fetch ဖြစ်ခဲ့တဲ့ field သုံးခု၊ nested data ရဖို့ endpoint နှစ်ခုခေါ်ရခဲ့ရတဲ့ under-fetch ဥပမာတစ်ခုရေးပါ။

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

GraphQL ကို database တစ်ခုလို သို့မဟုတ် REST ထက် အလိုအလျောက်မြန်တယ်လို့ မမှတ်ယူပါနှင့်။ Underlying data source (SQL query, network call) တွေကတော့ မပြောင်းလဲပါ—naive resolver ရေးရင် REST ထက်တောင် နှေးနိုင်ပါတယ်။

GraphQL — Introduction to GraphQLGraphQL

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

  • GraphQL ကို database တစ်ခုလို သို့မဟုတ် REST ထက် အလိုအလျောက်မြန်တယ်လို့ မမှတ်ယူပါနှင့်။ Underlying data source (SQL query, network call) တွေကတော့ မပြောင်းလဲပါ—naive resolver ရေးရင် REST ထက်တောင် နှေးနိုင်ပါတယ်။
  • နမူနာ query/mutation ကို production API ပေါ် တိုက်ရိုက်မစမ်းဘဲ local/test server နှင့် recoverable data ပေါ်တွင် အရင်အတည်ပြုပါ။

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

မိမိသိထားတဲ့ REST API တစ်ခုကို စဉ်းစားပြီး client တစ်ခုအတွက် over-fetch ဖြစ်ခဲ့တဲ့ field သုံးခု၊ nested data ရဖို့ endpoint နှစ်ခုခေါ်ရခဲ့ရတဲ့ under-fetch ဥပမာတစ်ခုရေးပါ။

You'll know it worked when: GraphQL က ဘယ်ပြဿနာကိုဖြေရှင်းလဲနှင့် ဒီ course ရဲ့ project ကို ရှင်းပြနိုင်မည်။

Getting Started — GraphQL Course လမ်းညွှန် | Thuta Learning