လွယ်လွယ်ပြောရရင် Webhook ဆိုတာ တစ်ခုခုဖြစ်လာတဲ့အခါ App တစ်ခုက တခြား App ကို အလိုလို သတင်းပို့တဲ့ စနစ်ပါ။ “ငွေပေးချေမှု အောင်မြင်သွားပြီ”၊ “Code အသစ် Push လုပ်လိုက်ပြီ”၊ “Order အသစ် ဝင်လာပြီ” ဆိုတဲ့ အဖြစ်အပျက်တစ်ခုဖြစ်လာတာနဲ့ သက်ဆိုင်ရာ App ကို ချက်ချင်း အကြောင်းကြားလိုက်တာပါ။ ကိုယ်က ထပ်ခါထပ်ခါ သွားမေးနေစရာမလိုဘူး။ သတင်းက ကိုယ့်ဆီ သူ့အလိုလို ရောက်လာတယ်။

ကျွန်တော် ဒါကို ခေါင်းလောင်းနဲ့ ယှဉ်ပြီးတွေးတယ်။ အိမ်မှာ ဧည့်သည်လာမလား သိချင်တဲ့အခါ နည်းနှစ်မျိုးရှိတယ်။ တစ်မျိုးက ငါးမိနစ်တစ်ခါ တံခါးသွားဖွင့်ကြည့်တာ — ဧည့်သည်လာပြီလား၊ မလာသေးဘူးလား ထပ်ခါထပ်ခါ စစ်နေရတယ်။ ဒါကို Polling လို့ ခေါ်တယ်။ ပင်ပန်းတယ်၊ အချိန်ကုန်တယ်၊ ဧည့်သည်က ခုနကမှ ထွက်သွားတာကို လွဲသွားနိုင်တယ်။ နောက်တစ်မျိုးက ခေါင်းလောင်းတပ်ထားတာ — ဧည့်သည်ရောက်တာနဲ့ ခေါင်းလောင်းထိုးလိုက်တယ်၊ ကိုယ်က တံခါးသွားဖွင့်ရုံပဲ။ Webhook က ခေါင်းလောင်းပါ။ အဖြစ်အပျက်ဖြစ်လာတာနဲ့ ချက်ချင်း သတင်းပို့ပေးတယ်။

Webhook က ဘယ်လိုအလုပ်လုပ်လဲ?

အဆင့်သုံးဆင့်ပဲ ရှိပါတယ်။ ပထမဆုံး သတင်းလက်ခံမယ့် App က Webhook URL တစ်ခုကို ပေးထားတယ်။ ဒါက လိပ်စာလိုပဲ — “သတင်းရှိရင် ဒီလိပ်စာကို ပို့ပေး” ဆိုတဲ့ သဘောပါ။ ဥပမာ Discord Server မှာ Webhook URL တစ်ခုကို ဖန်တီးလို့ရတယ်။ ဒုတိယ၊ သတင်းပို့မယ့် App (ဥပမာ GitHub) မှာ အဲဒီ URL ကို ချိတ်ထားတယ်။ “Code Push လုပ်တိုင်း ဒီ URL ကို သတင်းပို့” လို့ သတ်မှတ်ထားတယ်။ တတိယ၊ တကယ်အဖြစ်အပျက်ဖြစ်လာတဲ့အခါ GitHub က အဲဒီ URL ကို HTTP POST Request တစ်ခု ပို့လိုက်တယ်။ Request ထဲမှာ ဘာဖြစ်ခဲ့လဲဆိုတဲ့ အချက်အလက် (JSON ပုံစံ) ပါသွားတယ်။ Discord က အဲဒါကို လက်ခံပြီး Channel ထဲမှာ Message အဖြစ် ပြပေးတယ်။ ဒါပါပဲ။ API အကြောင်း အရင်က ရေးခဲ့ဖူးသလိုပဲ၊ Webhook ကလည်း App တွေ စကားပြောတဲ့နည်းတစ်မျိုးပါ — ဒါပေမယ့် ပုံမှန်ဆို ကိုယ်က သွားမေးရတယ်၊ Webhook မှာက သူက လာပြောတယ်။ ဒီပြောင်းပြန်ဖြစ်မှုကိုပဲ “Reverse API” လို့လည်း ခေါ်တတ်ကြပါတယ်။

Webhook ကို ဘယ်မှာသုံးလဲ?

နေ့တိုင်းသုံးနေတဲ့နေရာတွေမှာ အများကြီး ရှိပါတယ်။

GitHub ကနေ Discord/Telegram ကို Code Push သတင်း ပို့တာ — Team တစ်ခုလုံး Code အသစ် တင်လိုက်တာကို ချက်ချင်းသိရတယ်။
ငွေပေးချေမှု အောင်မြင်ရင် Order System ကို အကြောင်းကြားတာ — Stripe လို Payment Service က ငွေရပြီဆိုတာနဲ့ ကိုယ့်ဆိုင်ရဲ့ System ကို Webhook ပို့တယ်၊ Order က “Paid” ဖြစ်သွားတယ်။
E-commerce မှာ ပစ္စည်းမှာယူမှု ဝင်လာရင် Warehouse System ကို သတင်းပို့တာ၊ Form တစ်ခုဖြည့်လိုက်ရင် Google Sheet ထဲ အလိုလို ရောက်သွားတာမျိုးတွေပါ။

Webhook သုံးတဲ့အခါ သတိထားစရာ

Webhook URL ကို သိတဲ့သူတိုင်း သတင်းအတု ပို့နိုင်တယ်။ ဒါကြောင့် လုံခြုံရေးကို ဒီလိုလုပ်ကြပါတယ်။

Secret Key နဲ့ Signature စစ်ပါ။ သတင်းပို့တဲ့ App က Request တိုင်းမှာ လျှို့ဝှက်စကားနဲ့ တွက်ထားတဲ့ လက်မှတ် (Signature) ကို တွဲပို့တယ်။ လက်ခံတဲ့ဘက်က ကိုယ့်ရဲ့ Secret နဲ့ ပြန်တွက်ကြည့်ပြီး တူမှ လက်ခံတယ်။ ဒါက Digital Signature နဲ့ ဆင်တူတဲ့ စိတ်ကူးပါ။
Webhook URL ကို Public နေရာမှာ မတင်ပါနဲ့။ GitHub Repo ထဲ၊ Screenshot ထဲမှာ ပါသွားရင် ချက်ချင်း ပြန်ဖျက်ပြီး အသစ်ဖန်တီးပါ။
သတင်းပို့တာ မအောင်မြင်ရင် ပြန်ပို့တဲ့ စနစ် (Retry) ရှိမရှိ စစ်ပါ။ ကောင်းတဲ့ Service တွေက ပို့မရရင် ခဏနေမှ ထပ်ပို့ပေးတယ်။ ဒါပေမယ့် တစ်ခါတလေ သတင်းနှစ်ခါ ရောက်လာတတ်လို့ လက်ခံတဲ့ဘက်ကလည်း ထပ်နေတာကို ခံနိုင်အောင် ရေးထားရပါတယ်။

Polling နဲ့ Webhook ဘယ်ဟာ သုံးသင့်လဲဆိုတာ ဒီလိုခွဲပါ။ အဖြစ်အပျက် ခဏခဏ ဖြစ်ပြီး ချက်ချင်းသိဖို့ လိုရင် Webhook က ပိုသင့်တော်တယ်။ အဖြစ်အပျက် ရှားပြီး သိပ်မအရေးကြီးရင် တစ်နာရီတစ်ခါ Polling လုပ်တာနဲ့လည်း လုံလောက်ပါတယ်။ ပြီးတော့ Webhook လက်ခံမယ့် Server က အမြဲဖွင့်ထားရတယ်။ ကိုယ့် Server ပိတ်ထားတဲ့အချိန်မှာ သတင်းရောက်လာရင် လွဲသွားနိုင်လို့ပါ။

App တွေက တစ်ယောက်တည်း အလုပ်မလုပ်တော့ဘဲ ချိတ်ဆက်ပြီး အလုပ်လုပ်တဲ့ ခေတ်မှာ Webhook က အရေးပါတဲ့ ဆက်သွယ်ရေးနည်းတစ်မျိုးပါ။ တံခါးကို ငါးမိနစ်တစ်ခါ သွားဖွင့်ကြည့်နေမယ့်အစား ခေါင်းလောင်းလေး တပ်ထားလိုက်တာနဲ့ အတူတူပါပဲ။ 🙂

—

Avatar photo
Min SiThu
@itsmeminsithu

Software Engineer & Tech Content Creator

View all posts