Web Development မှာ API တို့ရဲ့ အခန်းကဏ္ဍ 📝
=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°
API တို့ရဲ့ အခန်းကဏ္ဍဆိုတာ Developer တွေမေ့ထားလို့မရတဲ့ အရာတစ်ခုပါပဲ။
API ရဲ့အရှည်ခေါက်က Application Programming Interfaces ဖြစ်ပါတယ်။ အလွယ်ပြောရရင် Website တစ်ခုတည်ဆောက်တဲ့နေရာမှာ frontend နဲ့ backend ကိုဆက်သွယ်ပေးပြီး လိုအပ်တဲ့ data တွေကိုသယ်ယူပို့ဆောင်ပေးတဲ့အရာလေးတွေဖြစ်ပါတယ်။စားသောက်ဆိုင်တွေမှာကျွန်တော်တို့မှာလိုက်တဲ့ menu ကို chef ဆီကိုယူသွားပေးပြီး chef ဆီကနေ အစားအစာကိုပြန်ယူလာပေးတဲ့ waiter လေးတွေလိုပါပဲ။ ဖုန်းထဲက ဓာတ်ပုံတွေကို drive ထဲကိုပြောင်းတာ၊ drive ကို အခြား device ကနေ sign in ဝင်ပြီးပုံတွေပြန်လည်ရယူနိုင်တာက API တွေရှိလို့ဖြစ်ပါတယ်။
API တွေဟာ ကျွန်တော်တို့ Developer တွေကိုအလုပ်ပိုပြီးအောင် အချိန်မကုန်အောင်လုပ်ဆောင်ပေးပါတယ်။
Developer တွေကောင်မလေးတွေကို ချစ်ရေးဆိုရင် "မင်းက ကိုယ့်ဘဝရဲ့ API လေးပါပဲ" လို့ ပြောကြည့်ပါ။ API တွေက Developer တွေရဲ့ဘဝကိုပိုပြီးလွယ်ကူအောင်လုပ်ဆောင်ပေးပါတယ်။
(ညိုကီတို့အတွက် တစ်ကွက် 🙄)
Website တွေတည်ဆောက်တဲ့နေရာမှာ ပိုပြီးရှုပ်ထွေးတဲ့ function တွေကို ပိုပြီးလွယ်ကူစွာ handle လို့ရအောင်လုပ်ဆောင်ပေးပါတယ်။ API တွေက frontend နဲ့ Backend ကြားမှာ interface လေးအနေနဲ့ဆောင်ရွက်ပေးပါတယ်။ API တွေကိုသုံးမယ်ဆိုရင် ကိုယ်သုံးချင်တဲ့ programming language နဲ့သုံးလို့ရပါတယ်။ Low level programming language နဲ့မသုံးဘဲ API တွေကို high level programming language တွေနဲ့ပိုပြီးလွယ်ကူအောင်အသုံးချလို့ရပါတယ်။
server side နဲ့ client side ကိုဆက်သွယ်ပေးထားတဲ့ API တွေဟာဆိုရင် အလုပ်လုပ်ပုံပေါ်မူတည်ပြီးအမျိုးအစားတွေအများကြီးခွဲထားပါသေးတယ်။
📌 စီးပွားရေးလုပ်ငန်းတွေအတွက် data တွေကိုအဓိကထားပြီးသယ်ပို့ပေးတဲ့ Private API
📌 လူတိုင်း data တွေကို access ရယူခွင့်ရှိတဲ့ Public API
📌 developer အချင်းချင်း လုပ်ငန်းရှင်အချင်းချင်းသာ data တွေမျှဝေနိုင်တဲ့ Partner API
📌 Complex System တွေအတွက် အဓိကထားအသုံးပြုတဲ့ Composite API တို့ပဲဖြစ်ပါတယ်။
API တွေကိုတစ်နေရာနဲ့တစ်နေရာ data တွေသယ်ယူပို့ဆောင်တဲ့နေရာမှာ အဓိကအသုံးပြုကြပါတယ်။ အခြားနေရာတွေလည်းအများကြီးရှိပါတယ်။ platform နှစ်ခုကို ချိတ်ဆက်ဖို့ API ကိုအသုံးပြုကြပါတယ်။ နောက်တစ်ခုက Twitter Bots တွေမှာ task တွေကိုအလိုအလျောက်လုပ်ဆောင်စေဖို့ API ကိုအသုံးပြုပါတယ်။ Travel Booking လုပ်တဲ့နေရာတွေမှာ Website တွေအချင်းချင်းချိတ်ဆက်ပေးဖို့ API ကိုကြားခံအနေနဲ့အသုံးပြုကြပါတယ်။ E-Commerce Website တွေတော်တော်များများမှာဆိုရင်တော့ API သုံးရင်လုံခြုံရေးအတွက်ပိုပြီးလည်းစိတ်ချရပြီး loading speed ကိုလည်းပိုမြန်စေပါတယ်။ API တွေကိုကျွန်တော်တို့သာ သတိမထားမိပေမဲ့ သူကနေ့စဥ်ကျွန်တော်တို့အသုံးပြုနေတဲ့ Software တွေထဲမှာ ပါဝင်ပါတယ်။ Weather snippets တွေ Paypal, Google Map စတာတွေက API အသုံးပြုခြင်းရဲ့ အကောင်းဆုံးဥပမာတွေဖြစ်ပါတယ်။ဒါကြောင့် Software Development တွေမှာ API ကမပါမဖြစ်တဲ့နေရာကနေ ရောက်ရှိလာတာဖြစ်ပါတယ်။
API ဟာ backend-logic ဖြစ်တဲ့အတွက် Backend Language တစ်ခုခုတတ်ထားမယ်ဆိုရင် API ရေးလို့ရပါပြီ။ Data တွေကို Transfer လုပ်ဖို့ အဓိက သုံးတာဖြစ်တဲ့အတွက် ကျွန်တော်တို့ data တွေကိုပို့တဲ့အခါ method တွေကိုသုံးရပါတယ်။ (ဥပမာ - POST, GET စတာတွေဖြစ်ပါတယ်။) အဓိကတော့ data format တွေရယ် Http protocol တွေကိုသိထားဖို့လိုအပ်ပါတယ်။ (ဥပမာ - SOAP,JSON,REST.. )
ပြီးရင်တော့အရှေ့မှာပြောခဲ့တဲ့ backend language တစ်ခုကိုသုံးပြီး စရေးလို့ရပါပြီ။
API တွေကိုသုံးပြီး technologies အချင်းချင်းချိတ်ဆက်ပြီး data တွေ transfer လို့ရပါတယ်။ API တွေကြောင့် ကျွန်တော်တို့ platform တစ်ခုနဲ့တစ်ခု collab လုပ်ရတာပိုပြီးလွယ်ကူလာစေပါတယ်။ Project အကြီးကြီးတွေကို API မပါဘဲတည်ဆောက်ဖို့မဖြစ်နိုင်ပါဘူး။
Developer ကြီးတို့ကရော API ကိုလေ့လာပြီးသွားကြပြီလား ❔
#creative_coder_myanmar
=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°=°
API တို့ရဲ့ အခန်းကဏ္ဍဆိုတာ Developer တွေမေ့ထားလို့မရတဲ့ အရာတစ်ခုပါပဲ။
API ရဲ့အရှည်ခေါက်က Application Programming Interfaces ဖြစ်ပါတယ်။ အလွယ်ပြောရရင် Website တစ်ခုတည်ဆောက်တဲ့နေရာမှာ frontend နဲ့ backend ကိုဆက်သွယ်ပေးပြီး လိုအပ်တဲ့ data တွေကိုသယ်ယူပို့ဆောင်ပေးတဲ့အရာလေးတွေဖြစ်ပါတယ်။စားသောက်ဆိုင်တွေမှာကျွန်တော်တို့မှာလိုက်တဲ့ menu ကို chef ဆီကိုယူသွားပေးပြီး chef ဆီကနေ အစားအစာကိုပြန်ယူလာပေးတဲ့ waiter လေးတွေလိုပါပဲ။ ဖုန်းထဲက ဓာတ်ပုံတွေကို drive ထဲကိုပြောင်းတာ၊ drive ကို အခြား device ကနေ sign in ဝင်ပြီးပုံတွေပြန်လည်ရယူနိုင်တာက API တွေရှိလို့ဖြစ်ပါတယ်။
API တွေဟာ ကျွန်တော်တို့ Developer တွေကိုအလုပ်ပိုပြီးအောင် အချိန်မကုန်အောင်လုပ်ဆောင်ပေးပါတယ်။
Developer တွေကောင်မလေးတွေကို ချစ်ရေးဆိုရင် "မင်းက ကိုယ့်ဘဝရဲ့ API လေးပါပဲ" လို့ ပြောကြည့်ပါ။ API တွေက Developer တွေရဲ့ဘဝကိုပိုပြီးလွယ်ကူအောင်လုပ်ဆောင်ပေးပါတယ်။
(ညိုကီတို့အတွက် တစ်ကွက် 🙄)
Website တွေတည်ဆောက်တဲ့နေရာမှာ ပိုပြီးရှုပ်ထွေးတဲ့ function တွေကို ပိုပြီးလွယ်ကူစွာ handle လို့ရအောင်လုပ်ဆောင်ပေးပါတယ်။ API တွေက frontend နဲ့ Backend ကြားမှာ interface လေးအနေနဲ့ဆောင်ရွက်ပေးပါတယ်။ API တွေကိုသုံးမယ်ဆိုရင် ကိုယ်သုံးချင်တဲ့ programming language နဲ့သုံးလို့ရပါတယ်။ Low level programming language နဲ့မသုံးဘဲ API တွေကို high level programming language တွေနဲ့ပိုပြီးလွယ်ကူအောင်အသုံးချလို့ရပါတယ်။
server side နဲ့ client side ကိုဆက်သွယ်ပေးထားတဲ့ API တွေဟာဆိုရင် အလုပ်လုပ်ပုံပေါ်မူတည်ပြီးအမျိုးအစားတွေအများကြီးခွဲထားပါသေးတယ်။
📌 စီးပွားရေးလုပ်ငန်းတွေအတွက် data တွေကိုအဓိကထားပြီးသယ်ပို့ပေးတဲ့ Private API
📌 လူတိုင်း data တွေကို access ရယူခွင့်ရှိတဲ့ Public API
📌 developer အချင်းချင်း လုပ်ငန်းရှင်အချင်းချင်းသာ data တွေမျှဝေနိုင်တဲ့ Partner API
📌 Complex System တွေအတွက် အဓိကထားအသုံးပြုတဲ့ Composite API တို့ပဲဖြစ်ပါတယ်။
API တွေကိုတစ်နေရာနဲ့တစ်နေရာ data တွေသယ်ယူပို့ဆောင်တဲ့နေရာမှာ အဓိကအသုံးပြုကြပါတယ်။ အခြားနေရာတွေလည်းအများကြီးရှိပါတယ်။ platform နှစ်ခုကို ချိတ်ဆက်ဖို့ API ကိုအသုံးပြုကြပါတယ်။ နောက်တစ်ခုက Twitter Bots တွေမှာ task တွေကိုအလိုအလျောက်လုပ်ဆောင်စေဖို့ API ကိုအသုံးပြုပါတယ်။ Travel Booking လုပ်တဲ့နေရာတွေမှာ Website တွေအချင်းချင်းချိတ်ဆက်ပေးဖို့ API ကိုကြားခံအနေနဲ့အသုံးပြုကြပါတယ်။ E-Commerce Website တွေတော်တော်များများမှာဆိုရင်တော့ API သုံးရင်လုံခြုံရေးအတွက်ပိုပြီးလည်းစိတ်ချရပြီး loading speed ကိုလည်းပိုမြန်စေပါတယ်။ API တွေကိုကျွန်တော်တို့သာ သတိမထားမိပေမဲ့ သူကနေ့စဥ်ကျွန်တော်တို့အသုံးပြုနေတဲ့ Software တွေထဲမှာ ပါဝင်ပါတယ်။ Weather snippets တွေ Paypal, Google Map စတာတွေက API အသုံးပြုခြင်းရဲ့ အကောင်းဆုံးဥပမာတွေဖြစ်ပါတယ်။ဒါကြောင့် Software Development တွေမှာ API ကမပါမဖြစ်တဲ့နေရာကနေ ရောက်ရှိလာတာဖြစ်ပါတယ်။
API ဟာ backend-logic ဖြစ်တဲ့အတွက် Backend Language တစ်ခုခုတတ်ထားမယ်ဆိုရင် API ရေးလို့ရပါပြီ။ Data တွေကို Transfer လုပ်ဖို့ အဓိက သုံးတာဖြစ်တဲ့အတွက် ကျွန်တော်တို့ data တွေကိုပို့တဲ့အခါ method တွေကိုသုံးရပါတယ်။ (ဥပမာ - POST, GET စတာတွေဖြစ်ပါတယ်။) အဓိကတော့ data format တွေရယ် Http protocol တွေကိုသိထားဖို့လိုအပ်ပါတယ်။ (ဥပမာ - SOAP,JSON,REST.. )
ပြီးရင်တော့အရှေ့မှာပြောခဲ့တဲ့ backend language တစ်ခုကိုသုံးပြီး စရေးလို့ရပါပြီ။
API တွေကိုသုံးပြီး technologies အချင်းချင်းချိတ်ဆက်ပြီး data တွေ transfer လို့ရပါတယ်။ API တွေကြောင့် ကျွန်တော်တို့ platform တစ်ခုနဲ့တစ်ခု collab လုပ်ရတာပိုပြီးလွယ်ကူလာစေပါတယ်။ Project အကြီးကြီးတွေကို API မပါဘဲတည်ဆောက်ဖို့မဖြစ်နိုင်ပါဘူး။
Developer ကြီးတို့ကရော API ကိုလေ့လာပြီးသွားကြပြီလား ❔
#creative_coder_myanmar
Learning Platform မှာ သင်ကြားရတဲ့အတွေ့အကြုံတွေကို ပြောပြထားတဲ့ ကျောင်းသားတို့ရဲ့ review များ 📝
Website ကနေတဆင့်စာသင်ကြားရတဲ့ အတွေ့အကြုံတွေကို Creative Coder ရဲ့ကျောင်းသားတွေကတော့ အခုလိုပဲ ပြောပြပေးခဲ့ပါတယ်။
အခုလက်ရှိမှာလည်း နှစ်သိန်းအထိ လျှော့ပေးထားတဲ့ဈေးနဲ့ learning platform အတန်းတွေအားလုံးပါ၀င်တဲ့ package ကို တက်ရောက်နိုင်မှာဖြစ်လို့ page messenger ကနေသင်တန်းအပ်လို့ရပြီနော် 👀
Website ကနေတဆင့်စာသင်ကြားရတဲ့ အတွေ့အကြုံတွေကို Creative Coder ရဲ့ကျောင်းသားတွေကတော့ အခုလိုပဲ ပြောပြပေးခဲ့ပါတယ်။
အခုလက်ရှိမှာလည်း နှစ်သိန်းအထိ လျှော့ပေးထားတဲ့ဈေးနဲ့ learning platform အတန်းတွေအားလုံးပါ၀င်တဲ့ package ကို တက်ရောက်နိုင်မှာဖြစ်လို့ page messenger ကနေသင်တန်းအပ်လို့ရပြီနော် 👀
❤4
Beginner ဘ၀ရဲ့ အခက်အခဲတွေကို ဆွေးနွေးကြည့်ရအောင် 👀📝💬
Web Development နယ်ပယ်ထဲကို ၀င်ရောက်လာတဲ့ Developer ကြီးတို့အနေနဲ့ beginner ဘ၀ကို မလွဲမသေကျော်ဖြတ်ဖူးကြမှာပါ။
ဒီအခါ ဘယ်လိုအခက်အခဲတွေကြုံတွေ့ခဲ့ရလဲ?
ဒီအခက်အခဲတွေကို ဘယ်လိုကျော်ဖြတ်ခဲ့လဲ?
လေ့လာတဲ့အခါမှာ ဘယ်လိုနည်းတွေကို သုံးပြီးလေ့လာခဲ့လဲ?စတာ စတာတွေကို နောက်လာမယ့် Developer တွေသိအောင် ဆွေးနွေးကြပါစို့လား Senior Developer ကြီးတို့ရေ 💬
Beginner တွေအနေနဲ့လည်း ကိုယ်လက်ရှိကြုံနေရတဲ့ အခက်အခဲတွေကို comment မှာပြောပြခဲ့လို့ရပါတယ်။
အခက်အခဲတွေဆွေးနွေးရင်း နွေးထွေးတဲ့နည်းပညာစကားဝိုင်းတစ်ခု ဖန်တီးချင်ရင်တော့ comment မှာ ရေးခဲ့လို့ရပါတယ် 👇
#creative_coder_myanmar
Web Development နယ်ပယ်ထဲကို ၀င်ရောက်လာတဲ့ Developer ကြီးတို့အနေနဲ့ beginner ဘ၀ကို မလွဲမသေကျော်ဖြတ်ဖူးကြမှာပါ။
ဒီအခါ ဘယ်လိုအခက်အခဲတွေကြုံတွေ့ခဲ့ရလဲ?
ဒီအခက်အခဲတွေကို ဘယ်လိုကျော်ဖြတ်ခဲ့လဲ?
လေ့လာတဲ့အခါမှာ ဘယ်လိုနည်းတွေကို သုံးပြီးလေ့လာခဲ့လဲ?စတာ စတာတွေကို နောက်လာမယ့် Developer တွေသိအောင် ဆွေးနွေးကြပါစို့လား Senior Developer ကြီးတို့ရေ 💬
Beginner တွေအနေနဲ့လည်း ကိုယ်လက်ရှိကြုံနေရတဲ့ အခက်အခဲတွေကို comment မှာပြောပြခဲ့လို့ရပါတယ်။
အခက်အခဲတွေဆွေးနွေးရင်း နွေးထွေးတဲ့နည်းပညာစကားဝိုင်းတစ်ခု ဖန်တီးချင်ရင်တော့ comment မှာ ရေးခဲ့လို့ရပါတယ် 👇
#creative_coder_myanmar
❤3👍1
Memoize function နဲ့အတူ Code Performance ကို တိုးမြှင့်ကြရအောင် 👀
Memoize function ကိုအသုံးပြုဖူးပြီးပြီလား Developer ကြီးတို့ရေ 👀
အသုံးမပြုဖူးသေးရင် code example လေးနဲ့အတူ စမ်းသုံးကြည့်ရအောင်။
function memoize(fn) {
const cache = new Map();
return function (...args) {
const key = JSON.stringify(args);
if (cache.has(key)) {
return cache.get(key);
}
const result = fn(...args);
cache.set(key, result);
return result;
};
}
const cache = new Map();
ပထဆုံအနေနဲ့ cache ဆိုတဲ့ collection ကို new Map() object နဲ့ variable တစ်ခုထဲ သိမ်းထားလိုက်ပါတယ်
return function (...args) {
const key = JSON.stringify(args);
const result = fn(...args);
cache.set(key, result);
return result;
};
return function (...args) {}
ဒီ code လေးကတော့ memorize function က နေပြန်ပေးမယ့် function ဖြစ်ပြီး (...args) က တော့ rest parameter သုံးထားတာကြောင့် ကြိုက်သလောက် arg ပေးလို့ရအောင်ဖြစ်ပါတယ်။
const key = JSON.stringify(args);
ဒီ code မှာဆိုရင် cache ထဲထည့်သိမ်းဖို့ variable key ထဲမှာ သိမ်းမှာဖြစ်လို့ args ကို json.stringify နဲ့
string ဖြစ်အောင် လုပ်လိုက်ပါတယ်။
if (cache.has(key)) {
return cache.get(key);
}
ပြီးရင်တော့ cache ထဲမှာ ခုနက သိမ်းထားတဲ့ key ရှိမရှိစစ်ပြီး ရှိရင် cache ထဲက data ကို return ပေးပါတယ်
const result = fn(...args);
cache ထဲမှာ သိမ်းထားတဲ့ function မရှိရင် ဒီ code က အလုပ်လုပ်မှာ ဖြစ်ပါတယ်။
const result = fn(...args);
function ကို (...arg) ဒီဟာကတော့ spread operator နဲ့ function ကို trigger လိုက်ပြီး ရလာတဲ့ data ကို result ဆိုတဲ့ variable ထဲထည့်သိမ်းထားလိုက်ပါတယ်
cache.set(key, result);
ဒီဟာကတော့ cache ထဲမှာ key,value နဲ့ ထည့်သိမ်းလိုက်ပါတယ်။
return result;
ပြီးတော့ ရလာတဲ့ data ကို return လိုက်ပါတယ်
example Usage ကတော့
function sumArray(arr) { console.log("Calculating sum..."); return arr.reduce((total, num) => total + num, 0); }
const memoizedSumArray = memoize(sumArray);
const arrays = [1, 2, 3, 4, 5]
memoizedSumArray(arr) // output:15
ဒီမှာဆိုရင် 15 ကို return ပြန်ပေးတာကိုတွေ့ရမှာပါ။
စမ်းသုံးကြည့်ဖူးတဲ့ Developer တွေရှိရင် comment မှာရေးပေးသွားကြပါဦးနော် 👀
#creative_coder_myanmar
Memoize function ကိုအသုံးပြုဖူးပြီးပြီလား Developer ကြီးတို့ရေ 👀
အသုံးမပြုဖူးသေးရင် code example လေးနဲ့အတူ စမ်းသုံးကြည့်ရအောင်။
function memoize(fn) {
const cache = new Map();
return function (...args) {
const key = JSON.stringify(args);
if (cache.has(key)) {
return cache.get(key);
}
const result = fn(...args);
cache.set(key, result);
return result;
};
}
const cache = new Map();
ပထဆုံအနေနဲ့ cache ဆိုတဲ့ collection ကို new Map() object နဲ့ variable တစ်ခုထဲ သိမ်းထားလိုက်ပါတယ်
return function (...args) {
const key = JSON.stringify(args);
const result = fn(...args);
cache.set(key, result);
return result;
};
return function (...args) {}
ဒီ code လေးကတော့ memorize function က နေပြန်ပေးမယ့် function ဖြစ်ပြီး (...args) က တော့ rest parameter သုံးထားတာကြောင့် ကြိုက်သလောက် arg ပေးလို့ရအောင်ဖြစ်ပါတယ်။
const key = JSON.stringify(args);
ဒီ code မှာဆိုရင် cache ထဲထည့်သိမ်းဖို့ variable key ထဲမှာ သိမ်းမှာဖြစ်လို့ args ကို json.stringify နဲ့
string ဖြစ်အောင် လုပ်လိုက်ပါတယ်။
if (cache.has(key)) {
return cache.get(key);
}
ပြီးရင်တော့ cache ထဲမှာ ခုနက သိမ်းထားတဲ့ key ရှိမရှိစစ်ပြီး ရှိရင် cache ထဲက data ကို return ပေးပါတယ်
const result = fn(...args);
cache ထဲမှာ သိမ်းထားတဲ့ function မရှိရင် ဒီ code က အလုပ်လုပ်မှာ ဖြစ်ပါတယ်။
const result = fn(...args);
function ကို (...arg) ဒီဟာကတော့ spread operator နဲ့ function ကို trigger လိုက်ပြီး ရလာတဲ့ data ကို result ဆိုတဲ့ variable ထဲထည့်သိမ်းထားလိုက်ပါတယ်
cache.set(key, result);
ဒီဟာကတော့ cache ထဲမှာ key,value နဲ့ ထည့်သိမ်းလိုက်ပါတယ်။
return result;
ပြီးတော့ ရလာတဲ့ data ကို return လိုက်ပါတယ်
example Usage ကတော့
function sumArray(arr) { console.log("Calculating sum..."); return arr.reduce((total, num) => total + num, 0); }
const memoizedSumArray = memoize(sumArray);
const arrays = [1, 2, 3, 4, 5]
memoizedSumArray(arr) // output:15
ဒီမှာဆိုရင် 15 ကို return ပြန်ပေးတာကိုတွေ့ရမှာပါ။
စမ်းသုံးကြည့်ဖူးတဲ့ Developer တွေရှိရင် comment မှာရေးပေးသွားကြပါဦးနော် 👀
#creative_coder_myanmar
❤3👍1