การใช้ PHP เรียกเว็บเซอร์วิสแบบ REST

การเรียกใช้เว็บเซอร์วิส REST ด้วยภาษา PHP นั้นง่ายและเป็นที่นิยม

ภาษา PHP เป็นภาษาที่เหมาะสมในการพัฒนาเว็บแอปพลิเคชัน เนื่องจากเป็นภาษาที่ง่าย
เรียนรู้ได้เร็ว และสามารถนำมาใช้ได้ฟรี  เว็บเซอร์วิสแบบ REST นั้นเป็นเว็บเซอร์วิสที่สามารถพัฒนาขึ้นมาได้ง่ายโดยอาศัยเพียงความรู้เกี่ยวกับ XML และ HTTP  การเรียกใช้เว็บเซอร์วิส REST ด้วยภาษา PHP นั้นง่ายและเป็นที่นิยม 

ขั้นตอนวิธีการมีดังต่อไปนี้

1) เรียกฟังก์ชัน Header() เพื่อที่จะทำให้ชนิดเนื้อหาที่เราอ่านผ่านเว็บเบราว์เซอร์อยู่ในรูปของภาษา XML เช่น

header('Content-Type: text/xml');

2) เรียกฟังก์ชัน file_get_contents() เพื่อที่จะดึงเนื้อหาทั้งหมดมาเก็บไว้ในตัวแปร เช่น

$xml = file_get_contents($url); 

ตัวอย่างของการเรียกใช้ Amazon Web services แบบ REST ในการค้นหาหนังสือที่มีคำสำคัญว่า Web Services  มีดังต่อไปนี้

php
header("Content-type: text/xml");
$base = 'http://webservices.amazon.com/onca/xml';
$query_string = '';
$params = array(
'Service' =>'AWSECommerceService',
'SubscriptionId' => '16XT8ETKKB7NWHAGCQ02' ,
'Operation' => 'ItemSearch',
'SearchIndex' => 'Books',
'Keywords' => 'Web Services');
foreach ($params as $key => $value) {
   if ($key != 'Keywords')
    $query_string .= "$key=" . urlencode($value) . "&";
  else
   $query_string .="$key=".urlencode($value);
}
$url = "$base?$query_string";

// In case you need to call Web services through Proxy, you need to define a context for HTTP.
/$aContext = array(
   'http' => array(
       // this is KKU proxy host and port
       'proxy' => 'tcp://202.12.97.116:8088',
       'request_fulluri' => True,
       ),
   );
/

// Now all file stream functions can use this context.
// $cxContext = stream_context_create($aContext);
// $xml = file_get_contents($url, False, $cxContext);
$xml = file_get_contents($url);
echo $xml;     
?>

ซึ่งเราก็จะได้ผลลัพธ์ดังรูปที่แสดงต่อไปนี้

 

อ้างอิงจาก 

PHP: file_get_contents -  Manual http://br.php.net/file_get_contents 

PHP: header - Manual http://th2.php.net/header 

บันทึกนี้เขียนที่ GotoKnow โดย  ใน XML Web Services Tips & Troubleshooting



ความเห็น (4)

เขียนเมื่อ 
  • แวะมาเยี่ยมค่ะ
  • สบายดีนะคะ
  • นอนหลับฝันดีค่ะ
ขอบคุณคุณ Bright Lily ค่ะที่แวะมาเยี่ยม ต้อมสบายดีค่ะ  ขอบคุณค่ะ
แจ๊ค tct
IP: xxx.151.232.70
เขียนเมื่อ 

สวัสดีครับอาจาย์ ผมชื่อนายเนติทัต สงตะคุ เป็นนักศึกษาชั้นปีสุดท้าย ภาคคอมพิวเตอร์ศึกษา มหาวิทยาลัยเทคโนโลยีพระจอมเกล้าพระนครเหนือ เป็นลูกศิษย์อาจารย์เทวา คำปาเชื้อ ผมจะทำโปรเจคต์จบเกี่ยวกับเว็บเซอร์วิสที่ให้บริการเกี่ยวกับการวิเคราะห์เครื่องจักรน่ะครับ อาจารย์เทวาจึงแนะนำให้ผมเข้ามาหาอาจารย์

ตอนนี้ผมพึ่งเริ่มต้นศึกษาเกี่ยวกับการทำเว็บเซอร์วิสอยู่ ถ้ามีอะไรสงสัยผมจะเข้ามารบกวนให้อาจารย์ช่วยดูนะครับ ขอบคุณมากครับ

ธีระศักดิ์
IP: xxx.7.149.97
เขียนเมื่อ 

สวัสดีครับอาจารย์ กานดา ตอนนี้ผมสนใจเกี่ยวกับเว็บเซอร์วิสครับ แต่ไม่มีพื้นฐานเลย อยากให้อาจารย์ช่วยเกี่ยวกับ php+xml ครับ ไม่ทราบว่าอาจารย์พอจะมี e-book ภาษาไทยเกี่ยวกับเรื่องนี้ไหมครับ