วิธีการสร้าง WebService อย่างง่ายด้วย php + NuSOAP
โพสต์แล้ว: 02/05/2012 5:42 pm
อันดับแรกก่อนที่จะทำการสร้าง WebService ด้วย NuSOAP นั้นจะต้องทำการ DownLoad ส่วนของ Library ของ NuSOAP ก่อนตาม Link นี้http://sourceforge.net/projects/nusoap/
จากนั้นให้แตกไฟล์ไว้ใน Folder ที่เราจะทำการเขียน WebService จากนั้นทำการสร้างไฟล์ออกเป็น2ส่วนคือ
1) ส่วนของ server - โดยส่วนนี้จะเป็นส่วนที่ใช้ในการเก็บเมธอดและลงทะเบียนเมธอดที่เราสร้างไว้
โค๊ดในส่วนนี้จะเป็นดังนี้
ในบรรทัดแรกจะเป็นการดึงข้อมูลจากไฟล์ที่เรา DownLoad ไว้ข้างต้นมาใช้
จากนั้นจะเป็นส่วนของฟังก์ชันที่เราได้สร้างขึ้น เป็นส่วนที่เราสร้าง Server ขึ้นมา
เป็นการตั้งค่า url ที่เราต้องการให้เป็นส่วนที่แสดงรายละเอียดของ Sever ว่ามีฟังก์ชันอะไรบ้างโดยทั่วไปจะใช้เป็น http://localhost/Floder ที่สร้างไว้/Fileของส่วนServer
จากนั้นจะเป็นการตั้งค่าของ WSLD โดยใช้คำสั่ง
แล้วทำการทะเบียนฟังก์ชันโดยใช้คำสั่ง
ซึ่งคำสั่งดังกล่าวยังมีพารามิเตอร์อีกดังโค๊ดด้านล่างนี้
โดยที่
$name - เป็นชื่อของฟังก์ชันที่ต้องการลงทะเบียน
$input - ใช้กำหนดชนิดข้อมูลของ input
$output - ใช้กำหนดชนิดข้อมูลของ output
ซึ่งชนิดของมูลของ input และ output นั้นจะต้องเป็นไปตามชนิดของข้อมูลจากภาษา xml ตามลิงค์นี้https://www.mindphp.com/forums/viewtopic ... 29&t=11982
$namespace - ใช้กำหนด XML documents (มีหรือไม่มีก็ได้)
$soapaction - ใช้กำหนด URI (มีหรือไม่มีก็ได้)
$style - ใช้กำหนดประเภทของ SOAP ซึ่งแบ่งเป็น RCP และ Document (มีหรือไม่มีก็ได้)
$use-ใช้กำหนดเกี่ยวกับผู้ใช้งาน(มีหรือไม่มีก็ได้)
$documentation-ใช้บอกรายละเอียดเกี่ยวกับฟังก์ชันนั้นๆ(มีหรือไม่มีก็ได้)
เมื่อจบคำสั่งนี้จะใช้คำสั่ง เป็นการรับข้อมูลจากภาษา xml ให้เข้ามาในภาษา php
แล้วใช้คำสั่ง เป็นอันจบในส่วนของ Sever
จากนั้นให้แตกไฟล์ไว้ใน Folder ที่เราจะทำการเขียน WebService จากนั้นทำการสร้างไฟล์ออกเป็น2ส่วนคือ
1) ส่วนของ server - โดยส่วนนี้จะเป็นส่วนที่ใช้ในการเก็บเมธอดและลงทะเบียนเมธอดที่เราสร้างไว้
โค๊ดในส่วนนี้จะเป็นดังนี้
โค้ด: เลือกทั้งหมด
require_once('lib/nusoap.php');
function doHellow($input) {
return $input;
}
$server = new soap_server();
$ws_server_url = 'url';
$server->configureWSDL('ชื่อของWebService.wsdl', $ws_server_url);
$server->register("doHellow", array('name' => 'xsd:string'), array('return' => 'xsd:string'));
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
จากนั้นจะเป็นส่วนของฟังก์ชันที่เราได้สร้างขึ้น
โค้ด: เลือกทั้งหมด
$server = new soap_server()
โค้ด: เลือกทั้งหมด
$ws_server_url = 'url'
จากนั้นจะเป็นการตั้งค่าของ WSLD โดยใช้คำสั่ง
โค้ด: เลือกทั้งหมด
$server->configureWSDL('ชื่อของWebService.wsdl', $ws_server_url)
โค้ด: เลือกทั้งหมด
$server->register("doHellow", array('name' => 'xsd:string'), array('return' => 'xsd:string'))
โค้ด: เลือกทั้งหมด
function
register($name, $input=array(), $output=array(), $namespace=false,
$soapaction=false, $style=false, $use=false, $documentation='')
$name - เป็นชื่อของฟังก์ชันที่ต้องการลงทะเบียน
$input - ใช้กำหนดชนิดข้อมูลของ input
$output - ใช้กำหนดชนิดข้อมูลของ output
ซึ่งชนิดของมูลของ input และ output นั้นจะต้องเป็นไปตามชนิดของข้อมูลจากภาษา xml ตามลิงค์นี้https://www.mindphp.com/forums/viewtopic ... 29&t=11982
$namespace - ใช้กำหนด XML documents (มีหรือไม่มีก็ได้)
$soapaction - ใช้กำหนด URI (มีหรือไม่มีก็ได้)
$style - ใช้กำหนดประเภทของ SOAP ซึ่งแบ่งเป็น RCP และ Document (มีหรือไม่มีก็ได้)
$use-ใช้กำหนดเกี่ยวกับผู้ใช้งาน(มีหรือไม่มีก็ได้)
$documentation-ใช้บอกรายละเอียดเกี่ยวกับฟังก์ชันนั้นๆ(มีหรือไม่มีก็ได้)
เมื่อจบคำสั่งนี้จะใช้คำสั่ง
โค้ด: เลือกทั้งหมด
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''
แล้วใช้คำสั่ง
โค้ด: เลือกทั้งหมด
$server->service($HTTP_RAW_POST_DATA)