Programming

GraphQL ဆိုတာဘာလဲ

by
published on
GraphQL ဆိုတာဘာလဲ
GraphQL ဆိုတာဘာလဲ

GraphQL ဆိုတာဘာလဲ

GraphQL ဆိုတာ facebook company က ထွင်ထားတဲ့ data query language တစ်မျိုးဖြစ်ပါတယ်။ FB developer ၃ ယောက်က သူတို့သာမာန် Restful မှာကြုံရတဲ့ ပြသနာတွေကိုလေ ျှာ့ချတဲ့အနေနဲ့ ထွင်လိုက်တာပါ။ ပုံမှန် Restful API က route အများကြီးနဲ့ http request အများကြီးပစ်ပေမယ့် GraphQL မှာ route တစ်ခုတည်းကိုပဲ request ပစ်ရတယ် http request တွေလည်းလေ ျှာ့ပစ်လို့ရတယ်။

GraphQl သမိုင်းအကြောင်းကိုကြည့်ချင်တယ်ဆိုရင်တော့ ဒီ video ကိုနှိပ်ပြီးကြည့်နိုင်ပါတယ်။

GraphQL နဲ့ laravel အကြောင်းကြည့်ချင်တယ်ဆို ကိုပြည့်ဟိန်းရဲ့ ဒီ video လေးကိုကြည့်လို့ရပါတယ်



GraphQL ကိုဘယ်နေရာမှသုံးတာလဲ

နောက်ပိုင်းမှာ restful API အစား GraphQL API ကို အစားထိုးသုံးလာကြပါတယ်။
Github ကိုအဓိကသုံးတဲ့ company တွေကတော့ Facebook, Atlassian, Github တို့ပဲဖြစ်ပါတယ်
တခြား companies တွေကြည့်မယ်ဆို ဒီ link မှာကြည့်နိုင်ပါတယ်။
 


ဘာကြောင့် GraphQL ကိုသုံးသင့်တာလဲ

 

GraphQL ရဲ့ အားသာချက်တွေအများကြီးရှိပါတယ် အဲဒီထဲကအဓိကအချက်ပြောရမယ်ဆိုရင်တော့

  1. API Response Data တွေထဲက အဓိကလိုအပ်တာပဲဆွဲယူလို့ရတယ်။
  2. API ကပြန်လာတဲ့ field နာမည်တွေကိုပြောင်းပြီးအစားထိုးပစ်လို့ရတယ်။
  3. Restful API မှာ ၃ ခေါက် ၄ ခေါက် လောက် request ပစ်မှ data တွေရတာကို GraphQL မှာ တစ်ခေါက်တည်းနဲ့ ပစ်လို့ရတယ်။ 
  4. GraphQL API ရဲ့  collections တွေကို documentaion ထုတ်ပေးတယ်။

1 - လိုအပ်တာပဲဆွဲယူခြင်း


အရင်က ကျနော်တို့ resful api တွေသုံးရင် ပြန်လာတဲ့ response data ကအများကြီးပဲ လိုအပ်တာတွေရော မလိုအပ်တာတွေရော အကုန်ပြန်လာတယ် ဒီတော့ မလိုအပ်တဲ့ data အပိုတွေကြောင့် data size ကြီးစေပြီး page speed ကိုကျစေပါတယ်။

2 - Field နာမည်တွေပြောင်းလဲအစားထိုးခြင်း

်တခါတလေ team နဲ့အလုပ်လုပ်ရင် backend developer တွေက ထုတ်ပေးလိုက်တဲ့ API field နာမည် တွေကို frontend က developer တွေ မကြိုက်လို့ ပြန်ပြောင်းရတာမျိုးရှိပါတယ်။ ပြီးတော့ အရင်ကဆိုအဲဒီလို field တစ်ခုလေးသာပြောင်းတာ developer တစ်ယောက်လုပ်ဆောင်ရတာအများကြီးပါပဲ၊ ဒါပေမယ့် GraphQL နဲ့ဆို : (colons) လေးတစ်ခုနဲ့ ကိုယ်ပြောင်းချင်တဲ့ field နာမည်တွေ အလွယ်တကူပြောင်းလို့ရပါတယ်။ 

အောက်ကပုံအရဆို backend က နဂို API က name ဆိုတဲ့ field ကို fullname ဖြစ်သွားအောင် ပြောင်းလိုက်တဲ့ သဘောပါ။ အဲဒီတော့ return json data မှာ fullname ဆိုတဲ့နာမည်နဲ့ပြန်လာပါတယ်။



3 -  HTTP request လေ ျှာ့ချခြင်း

ဒီအောက်ကပုံအရဆို  သာမန် Restful API မှာ ၃ ခေါက်လောက်ပစ်ထားတာကို GraphQL မှာတစ်ခါတည်းပစ်ပြီး data အကုန်ယူထားတဲ့ပုံစံပါ။

ဒီတော့ နောက်ပိုင်း web server တွေမှာ request ပမာဏနဲ့ ငွေကောက်တာကြောင့် GraphQL က Http request နည်းစေလို့ server အတွက် ငွေကုန်ကျ နည်းစေမှာပဲဖြစ်ပါတယ်။

4 - GraphQL API ရဲ့  collections တွေကို documentaion ထုတ်ပေးတယ်။

ပုံမှန် REST API တွေမှာဆို documentaion မရှိတော့ postman ထဲမှာအစမ်းပစ်ကြည့်ရတယ် ပြီးတော့မှ documetation အတွက် collection လုပ်ရတယ်။ 

GraphQL ကတော့ ဘာ fields တွေပါလဲ query လား mutation လား စတဲ့ info တွေကို documentation ထုတ်ပေးပါတယ်။ GraphQL API URL နဲ့ GraphQL playground တွေနဲ့ချိတ်လိုက်တာနဲ့ ညာဘက်မှ documentation (သို့)  SCHEMA ဆိုတာပါပြီးသာပါ။ အောက်ကပုံကိုကြည့်နိုင်ပါတယ်။

GraphQL ကိုအလွယ်တကူစမ်းသပ်ချင်တယ်ဆို graphql playground for chrome သို့မဟုတ် graphCMS ကိုစမ်းသုံးနိုင်ပါတယ်။ ခုနောက်ပိုင်းဆို graphQL တော်တော်ခေါတ်စားလာတော့ Strapi, Gatsby, wordpress , laravel, drupal စတဲ့ frameworkတွေ cms တွေမှာသုံးလို့ရလာတာတွေ့ရပါတယ်။ PostMan ထဲမှာလည်း GraphQL အတွက် feature တစ်ခုအနေနဲ့ထည့်သွင်းလာတာတွေ့ရပါတယ်။

အခုလို ကျနော့် blog ကို ဝင်လည်ပြီး post ပြီးအောင်ဖတ်ပေးတဲ့အတွက်လည်း ကျေးဇူးတင်ပါတယ်။ ✌🏻✌🏻✌🏻