Making Rest API – Part 2

Part 1 ကို အရင် ဖတ်ရန်

Ava framework ကို ဒီမှာ download ချလိုက်ပါ။ ရလာတဲ့ zip file ကို localhost အောက်မှာ testRest ဆိုပြီး ပေးထားပါတယ်။ zip file ထဲက file တွေအားလုံးကို testRest အောက်ကို ပို့လိုက်ပါတယ်။

ava

ပြီးရင် http://localhost/testRest ဆိုပြီး ခေါ်ကြည့်ရင် အောက်ကလို မြင်ရပါမယ်။

ကဲ .. ကျွန်တော်တို့တွေ စရေးလို့ရပါပြီ။

/system/application/controller အောက်က file တွေကို ဖျက်လိုက်ပါ။
/system/application/model အောက်က file နှင့် /system/application/view အောက်က file တွေပါ အပါအဝင်ပေါ့။

ပြီးရင် /system/config/development.php မှာ config လုပ်ရပါမယ်။

[php]const base_url="http://localhost/testRest";
const home_controller = ‘posts’;[/php]

ပြီးရင် database config ကို ပြင်ပါမယ်။ ကျွန်တော်က rest ဆိုတဲ့ database မှာ posts table ကို ဆောက်ထားတာပါ။ ဒါကြောင့် ဒီလိုရေးထားပါတယ်။

[php]const db_host="localhost";
const db_name="rest";
const db_user="root";
const db_password="root";[/php]

ဆိုပြီး ပြင်လိုက်ပါမယ်။ ဘာဖြစ်လို့လည်းဆိုတော့ posts ဆိုတဲ့ controller ကို ကျွန်တော်တို့ home controller အနေနဲ့ သတ်မှတ်ထားပါတယ်။ base_url ကိုလည်း http://localhost/testRest ဆိုပြီး ပြင်လိုက်ပါတယ်။

/system/application/controller အောက်မှာ posts.php ဆောက်ပါမယ်။ posts.php မှာ အောက်ကလို ရေးလိုက်ပါမယ်။

အဲဒီ code မှာ

[php]$this->get_route("/","home");[/php]

ဆိုတာကတော့ get method ကို အသုံးပြုမယ်။ / ဆိုတဲ့ ပတ်လမ်းကြောင်း တနည်းပြောရင် /posts ဆိုတာကို လာရင် home function ကို ခေါ်မယ်။

Ava ရဲ့ route ပုံစံက

http://domain.com/controller/

controller အောက်မှာမှာ ကျွန်တော်တို့တွေ ဘယ်လမ်းကြောင်းလာရင် ဘယ် function ကို ခေါ်ဆိုပြီး ရေးထားတာပါ။

/ ဆိုတာကတော့ controller/ ကို ပြောတာနဲ့ အတူတူပါပဲ။

posts ဆိုတဲ့ controller အောက်မှာ ဖြစ်တဲ့အတွက်ကြောင့် /posts ကို ခေါ်တာနဲ့ အတူတူပါပဲ။

ကျွန်တော်တို့တွေ get,post,put,delete တွေအတွက် routing နဲ့ function တွေကို

  • get_route
  • post_route
  • put_route
  • delete_route

ဆိုပြီး ခေါ်သွားပါတယ်။

[php]$this->run(object)[/php]

မှာတော့ ဘာ object မှာ function တွေ ရှိသလဲဆိုတာကို ပြောထားတာပါ။ လက်ရှိ controller ထဲမှာပဲ function တွေ ရေးထားရင်တော့ $this ကို အသုံးပြုနိုင်ပါတယ်။ ကျွန်တော်က function တွေကို သီးသန့် model ခွဲထုတ်လိုက်ပြီး postsfun ဆိုပြီး model နာမည်ပေးထားပါတယ်။ ဒါကြောင့်

[php]$this->run($this->postsfun);[/php]

ဆိုပြီး ရေးထားတာပါ။

နောက်တဆင့် အနေနဲ့ ကျွန်တော်တို့ postfun Model ကို ရေးကြည့်ရအောင်။ အရင်ဆုံး postfun.php ကို /system/application/model/ အောက်မှာ သွားဆောက်လိုက်ပါ။ ပြီးရင် ဒီလို ရေးထားလိုက်ပါ။

function တွေ အားလုံးကို ချရေးထားတာပါ။ /:id ဆိုပြီး ခေါ်ထားတဲ့ ပတ်လမ်းကြောင်းတွေကိုတော့ $params ဆိုပြီး parameter ထည့်ထားပါတယ်။

/:id ကို ခေါ်ချင်ရင် $params[‘id’] ဆိုပြီး ခေါ်လိုက်ရင် ရပါတယ်။

function တွေကို ချမရေးခင်မှာ posts_model တစ်ခု တည်ဆောက်ရအောင်။ posts_model က posts အတွက် လိုအပ်တာတွေ စုစည်ထားတာပါ။

posts_model.php ကို /system/application/model မှာ သွားဆောက်လိုက်ပါ။

Ava မှာ database အတွက် သီးသန့် class ကို အသုံးပြုထားပါတယ်။

database ကနေ ယူချင်ရင်တော့

[php]$this->db->get(‘table’);// SELECT * FROM table [/php]

WHERE တွေ စစ်ချင်ရင်တော့

[php]$this->db->where("field",$value)[/php]

Insert လုပ်ချင်ရင်တော့

[php]$array[‘field’]=$value;
$array[‘field2’]=$value;
$this->db->insert(‘table’,$array);[/php]

နဲ့ အသုံးပြုပါတယ်။

posts_model တစ်ခုလုံးကို ရှင်းရှင်းလေးပါ။ ဖတ်ကြည့်လိုက်ရင် နားလည်ပါလိမ့်မယ်။ ထည့်တယ်။ ဖတ်တယ်။ ပြင်တယ်။ ဖျက်တယ်။ ဒါလေးပဲ ပါပါတယ်။

အခု postsfun ကို ပြင်ကြည့်ရအောင်။

Ava မှာ model ကို $this->load->model နဲ့ ခေါ်ပြီးရင် $this->modelname နဲ့ model က function တွေကို ခေါ်လို့ရပါတယ်။ ဥပမာ။။

[php]$this->load->model(‘modelname’);
$this->modelname->modelFunction()[/php]

အဲလိုမျိုး posts_model ကို ခေါ်ထားတာ တွေ့မှာပါ။

$this->io->write ကတော့ json အတွက်ပါ။

[php]$this->io->write($status,$array)[/php]

status code နဲ့ array object ထည့်ပေးလိုက် json အနေနဲ့ ထုတ်ပြပေးမှာ ဖြစ်ပါတယ်။

GET , POST , PUT , DELETE တို့ရဲ့ parse လုပ်တဲ့ data တွေကို လိုချင်ရင်တော့

[php]$this->io->get(‘var’);
$this->io->post(‘var’);
$this->io->put(‘var’);
$this->io->delete(‘var’);[/php]

နဲ့ အသုံးပြုလို့ရပါတယ်။

အခု example မှာ POST နဲ့ PUT မှာ parameter က title နဲ့ content ပါ။

အခု စမ်းသပ်ဖို့အတွက် Firefox addon RESTClient ကို download ချလိုက်ပါ။ add on သွင်းပြီးသွားရင် Tool > RESTClient ကို ဖွင့်လိုက်ပါ။

အရင်ဆုံး post method ကို စမ်းပါတယ်။ RESTClient မှာ post method အတွက် Request Header ဖြည့်ပေးရပါမယ်။

Content-Type : application/x-www-form-urlencoded

ထည့်မှာသာ POST method က အလုပ်လုပ်မှာပါ။

posts

POST method ကို title နဲ့ content ထည့်ပြီး run လိုက်ရင် အောက်ကလို မြင်ရပါမယ်။

post return

POST ပြီးသွားရင် GET နဲ့ ပြန်ပြောင်းခေါ်ကြည့်တဲ့အခါ posts တွေ အားလုံးကို တွေ့ရမှာပါ။

GET Method Return

အခု post တစ်ခု တည်းကို GET နဲ့ ခေါ်ကြည့်ပါမယ်။

get detail

အခု post ကို ပြင်ပါမယ်။ PUT method ကို အသုံးပြုပါမယ်။

PUT image

နောက်ဆုံး DELETE လုပ်ကြည့်ရအောင် ဗျာ။

DELETE

အခုဆိုရင် RESTFUL နဲ့ JSON result တွေကို Ava framework ကို အသုံးပြုပြီး လွယ်လွယ်လေး လုပ်လို့ရပါတယ်။ အခုတလော လုံးဝ မအားတာကြောင့် လောလော နဲ့ ရေးထားတာမို့ အဆင့်တွေ အများကြီး ကျော်သွားတဲ့အတွက်ကြောင့် အခု မှ စလေ့လာကာစ လူတွေ နားလည်ဖို့ ခက်ခဲပါလိမ့်မယ်။ CodeIgniter ကို လေ့လာထားသူတွေအနေနဲ့ကတော့ လွယ်လွယ် ကူကူ တီးခေါ်မိပါလိမ့်မယ်။

Code ကိုတော့ အောက်မှာ ရယူနိုင်ပါတယ်။

Download

Leave a Reply

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