Webservice, Web API

MZ မှာမေးထားတာလေးကို blog မှာလည်း အခြားသူတွေ သိအောင် ထပ်ဖြေပေးလိုက်ပါတယ်။

ကျတော်က ဒီလိုနားလည် ထားတယ်…
ဥပမာ . Facebook မှာဆိုရင် Game တွေ အများကြီးပါတယ်။ အဲဒီ Game တွေက သာမာန် web programming နဲ့ ရေးလို့ မရဘူးဗျာ။ အဲဒါကို တခြား java ဖြစ်ဖြစ် c ဖြစ်ဖြစ် ရေးထားမယ်ပေါ့။ အဲဒီ အခြေနေမှာဆိုရင် ကို ရေးလိုက်တဲ့ဟာက my application ဖြစ်သွားပြီပေါ့။ အဲဒါကိုမှ web site မှာတင်ချင်တယ်ဆိုတော့ my application ကနေ web application ကိုပြောင်းဖို့ အတွက် web service ကို အသုံးပြုတာလို့ ကျတော်က နားလည် ထားတယ်။ အဲဒီ အတွေးက မှန်ပါသလား။

ခင်မင်စွာဖြင့် စိုင်းထက်

အဲလိုမဟုတ်ပါဘူး။

facebook မှာရေးချင်တယ်ဆို၇င် fbml ကို သုံးပြီးတော့ ရေးရမယ်။ အဆင်အပြေဆုံးကတော့ PHP နဲ့fbml ကို တွဲသုံးပြီး ရေးတာပေါ့။ အဲလိုရေးဖို့အတွက် အရင်ဆုံး facebook မှာ API key ယူရတယ်။ API key ရပြီးတော့မှ PHP ကနေဆိုရင် facebook phplibrary နဲ့ fbml ကို သုံးပြီးရေးရတယ်။ app run တာကတော့ ကိုယ့် host မှာ။ ပြတာကတော့ facebook ကနေပေါ့။ API နဲ့ FBML က အလုပ်လုပ်သွားပေးတာပါ။ API ဆိုတာက facebook နဲ့ ကိုယ်ရေးထားတဲ့ API ကို ကြားခံဆောင်ရွက်ပေးတာပါ။ အဲလို ဆောင်ရွက်ပေးဖို့အတွက် ကိုယ်က facebook site မှာ app register လုပ်ရတယ်။ အဲဒီ အခါ API key ရလာမယ်။ API key ရမှ ဆက်သွယ်လို့ရမယ်။ API key ဆိုတာက security သဘောမျိုးနဲ့ သုံးတာပါ။ ဥပမာ API ကို အသုံးပြုပြီး facebook မှာ ၅ မိနစ် တစ်ခါ post တွေ အလိုအလျောက်တင်နေလို့ရတယ်။ အဲဒီအခါ facebook က ခွင့်မပြုဘူးဆိုရင် ဘယ် API က လာတယ်။ အဲဒီ API ကို ဘယ် user က register လုပ်ထားလဲဆိုတာကို သိပြီး ban လိုက်လို့ရတယ်။

oAuth က နည်းနည်းရှုပ်တယ်။ နည်းနည်းပိုရှင်းတဲ့ AuthSub ကို ပြောတာ ပိုကောင်းမယ်။ AuthSub ဆိုတာက google ရဲ့ နည်းပညာပါ။ oAuth ကို အခြေခံထားတာပဲ။ user တွေရဲ့ contact list ကို site တစ်ခုကနေ ယူတော့မယ်ဆိုပါဆို့။ အဲဒီလိုအခါမှာ user ရဲ့ username နဲ့ pwd ထည့်ရမယ်။ အဲဒီ site က ယုံကြည်စိတ်ချရမှု ရှိချင်မှရှိမယ်။ အဲလိုမျိုးတွေအတွက် oAuth ပေါ်လာတာပါ။ AuthSub က oAuth ထက် ပိုရှင်းအောင် လုပ်ထားပေးတယ်။

Google Contact list ကို web site က request လုပ်လိုက်ရင် google website ကိုရောက်သွားမယ်။ google website မှာ user က login ဝင်။ ဝင်ပြီးတဲ့အခါမှ google က ဒီ site က contact list ကို တောင်းနေပြီ။ မင်းပေးမှာလားလို့ မေးရော။ ကိုယ်က ပေးလိုက်လို့ပြောတဲ့အခါမှ google ကနေ ပေးလိုက်တာ။ အဲဒီ အခါမှာ လာခဲ့တဲ့ site ကိုရောက်သွားရော။ အဲဒီအတွက် session token ပို့လိုက်တယ်။ username နဲ့ pwd တော့ မပို့ဘူး။ session token ဖြစ်တဲ့အတွက် အချိန်အကြာကြီးမရတဲ့အတွက် username နဲ့ pwd ကို site က ခိုးလို့မရတော့ဘူး။ user အတွက်လည်း စိတ်ချရတယ်။ site အတွက်လည်း user ရဲ့ ယုံကြည်မှုကိုရတယ်။

တနည်းပြောရင် သာမာန် web programming နဲ့ပဲ ရေးရတာပဲ။ facebook app လည်း သာမာန် web programming နဲ့ပဲရေး၇တာပဲ။ သက်ဆိုင်ရာ API function တွေကိုတော့ ယူသုံးရတယ်။ ဥပမာ။ facebook API function ကနေ friendlist တွေရနိုင်တယ်။ user information တွေရနိုင်တယ်။ register လုပ်တယ်ဆိုတာက user information ရဖို့ပဲ။ facebook connect သုံးလိုက်တော့ user လည်း register လုပ်စရာမလိုတော့ဘူး site ကလည်း information ရတယ်။ အဲလိုမျိုး web service တွေက အလုပ်လုပ်ပေးတာ။

ဥပမာ။ ။ ကျွန်တော် လက်ရှိရေးနေတဲ့ ornagai ဆိုပါဆို့။ API ကတော့ ရေးနေဆဲ မပြီးသေးဘူး။ API register လုပ်ထားတဲ့သူက ornagai ရဲ့ စာလုံးတွေကို အခြား site ကနေ retrieve လုပ်လို့ရတယ်။ ကျွန်တော့် site ကို လာစရာမလိုပဲနဲ့ API function ခေါ်ပြီး retrieve လုပ်လို့ရမယ်။ အဲဒီအတွက် အခြား site တွေကလည်း စာလုံးတစ်ခုကို mouse ထောက်လိုက်တာနဲ့ ornagai dictionary API ကို ယူပြီး ornagai ကနေ စာလုံးရှာပြီး return ပြန်လာမယ်။ ပြန်လာတဲ့စာလုံးကို ရေးထားတဲ့ app ကနေ ရယူပြီး ပြန်ပြီးပေးတယ်။

Google Map API ကို အသုံးပြုပြီးတော့ မြေပုံပေါ်မှာ ပုံတွေထည့်တာ point တွေထည့်တာ စတာတွေလုပ်လို့ရတယ်။

http://map.etelegram.net.mm

ဆိုရင် Google Map API သုံးပြီးတော့ မြန်မာနိုင်ငံက မြို့တွေကို point တွေနဲ့ ချထားတာ။ အဲလိုလုပ်ဖို့ google map api key ကို အရင်ဆုံး ယူရတယ်။ API key တစ်ခုက register လုပ်ထားတဲ့ site ကပဲ ခေါ်လို့ရတယ်။ http://map.etelegram.net.mm/ က API key ကို http://map.mymap.com.mm ကနေ ခေါ်လို့မရဘူး။  API key တစ်ခု ရယူဖို့က တစ်ခုနဲ့ တစ်ခုမတူဘူး။ Google Map ဆိုရင် site ပဲလိုပေမယ့် facebook ဆိုရင် facebook user ဖြစ်ရမယ်။ သုံးမယ် website လည်းလိုတယ်။

ဒါပေမယ့် Twitter အသုံးပြုတဲ့ REST လိုကျတော့ ဘာမှ မလိုပြန်ဘူး။ oAuth လိုတဲ့အပိုင်းရှိသလို မလိုတဲ့ အပိုင်းရှိတယ်။ user တစ်ယောက်ရဲ့ tweet တွေကို ထုတ်ကြည့်ချင်ရင် twitter ကပေးထားတဲ့ REST web service ကနေ ထုတ်လိုက်လို့ရတယ်။ ဘယ် site ကနေ ဖြစ်ဖြစ် ဘယ် app ကနေ ဖြစ်ဖြစ် ထုတ်ယူလို့ရပါတယ်။ ဒါပေမယ့် ကိုယ့် status တင်တော့မယ်ဆိုရင် oAuth လိုအပ်ပါတယ်။ oAuth သဘောတရားက AuthSub သဘောတရားနဲ့ ဆင်တူပါတယ်။ SOAP ဆိုတာက ထပ်ရှိသေးတယ်။ SOAP ကတော့ အခုချိန်မှာ ခေတ်သိပ်မရှိတော့ဘူး။ သုံးတဲ့လူလည်း တော်တော်နည်းသွားပြီ။

API တွေ web service တွေကြောင့် ဘာလုပ်လို့ရလဲဆိုတော့ sync တွေ လုပ်လို့ရလာတယ်။ ဥပမာ Google Calendar ဆိုပါဆို့။ Google Calendar က online ပဲရတယ်။ App တစ်ခုရေးပြီး Google Clanedar API ကို ယူသုံးလိုက်ပြီး data တွေ အကုန်ဆွဲချလိုက်လို့ရတယ်။ နောက်ပြီးတော့ APP မှာ ထည့်ထားတာတွေကို Google Calendar API ကနေ တင်ပေးလိုက်လို့ရတယ်။ Syn လုပ်ပြီးသွားရင် Google Calendar မှာရှိတာတွေနဲ့ ကိုယ့် app မှာရှိတာတွေနဲ့ အတူတူဖြစ်သွားပြီ။

ဒီလောက်ဆို၇င် web service , web API တွေအကြောင်း နားလည်ပြီလို့ ထင်ပါတယ်။

1 Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.