เริ่มจากการโหลด Library Nusoap จากเว็บไซต์นี้ https://sourceforge.net/projects/nusoap/
เมื่อดาวน์โหลดเรียบร้อยแล้ว จะได้โฟเดอร์ที่มีหน้าตาดังรูป
ขั้นตอนที่ 2 เริ่มการเขียน Web service!
หลังจากที่ได้ไฟล์ Library มาแล้ว จากนั้นให้ย้ายไฟล์ lib ไปยังพื้นที่เก็บไฟล์ในส่วนของ Server (ในที่นี้จะเป็น xampp จึงย้ายไฟล์ lib ไปยังโฟเดอร์ htdocs)
Web service แรกที่จะมาเขียนกัน จะเป็นการส่ง name เข้าไป และจะได้ข้อความตอบรับกลับมา ดัง function นี้
เมื่อนำ function นี้ไปอยู่ในส่วนของ Web service จะได้ออกมาดังโค้ดนี้
- ในส่วนแรกจะเรียกใช้ library ที่ดาวน์โหลดมา จะเรียกไปหาไฟล์ nusoap.php
- จากนั้นจะประกาศตัวแปร $server ที่มีการสร้าง server ขึ้นมา
- ใช้คำสั่ง configureWSDL เพื่อตั้งค่าหน้า WSDL ที่ library nusoap จะทำการ generate wsdl ไฟล์ขึ้นมาให้ โดยตั้งชื่อ WSDL ว่า Soap Demo และตั้ง Namespace เป็น soapdemo
- สร้าง function hello
- กำหนด web service ว่าจะให้ใช้ function hello เป็น service ด้วย โดยที่ input parameter จะใช้ชื่อว่า name และเป็นชนิด string และ จะ return ค่าออกมาเป็น string
- Run service
ขั้นตอนที่ 3 ทดสอบ Web service
เมื่อเขียนโปรแกรมฝั่ง server เสร็จเรียบร้อย สามารถทดสอบ web service ได้โดยการให้เข้าไปยังเว็บไซต์นั้น ในที่นี้ผมตั้งชื่อไฟล์ว่า service.php และเก็บอยู่ใน folder ที่ชื่อว่า soap เมื่อเรียกดูไฟล์ ก็จะได้ดังรูป
จะเห็นได้ว่า จะมีให้กดคำว่า WSDL และคำว่า hello
เมื่อกด WSDL ก็จะไปยังหน้า service.php?wsdl จะแสดงรายละเอียดของ Web service ที่เราได้เขียน และได้กำหนดค่าต่างๆไป ดังรูป
เมื่อกด hello ก็จะขึ้นรายละเอียดของ function hello ว่าต้องการ input parameter ชื่ออะไร และต้องการเป็นชนิดอะไร และจะ return ค่าออกมาเป็นชนิดไหน ดังรูป
เพียงเท่านี้ก็จะได้ Web service มาใช้กันได้แล้ว
ขั้นตอนที่ 4 เขียนเว็บฝั่ง client!
การที่จะเขียนเว็บ client ที่เรียกใช้งาน web service ได้นั้น เราจำเป็นต้องรู้ไฟล์ wsdl ของ web service ที่เราต้องการจะใช้ก่อน จากนั้นก็หยิบลิ้ง wsdl ของ web service นั้นมาใช้งาน ดังรูป
- เรียกใช้งาน library nusoap
- ประกาศตัวแปร $client และเรียกใช้ nusoap_client โดย parameter จะใส่ค่าลิ้งค์เว็บ wsdl ของ web service ที่ต้องการจะใช้ และ true
- ประกาศตัวแปร $data เพื่อเก็บค่าที่ return มาได้จาก web service โดยที่ $client จะไปเรียกใช้งาน function hello และใส่ค่าชื่อตัวแปรที่ใช้ใน function hello ในที่นี้คือ name และใส่ค่า value เข้าไป ในที่นี้คือ Peerawit ซึ่งมีชนิดเป็น String ตามที่ได้กำหนดไว้ใน wsdl
- print ค่าที่ได้รับออกมา
เมื่อเขียนเสร็จแล้ว ให้ไปตรวจสอบว่าได้รับค่าออกมาเป็นอย่างไร โดยการเปิดไฟล์ที่เขียนนี้ ในที่นี้ตั้งชื่อไฟล์ว่า client.php ดังรูป
จะเห็นว่าค่าที่ส่งไปคือคำว่า Peerawit แต่ผลลัพธ์ที่ออกมาจะมีคำว่า Hello, เพิ่มขึ้นมาด้วย นั่นเพราะว่า function hello มีการ return คำว่า Hello, ออกมาพร้อมกับ name ที่ส่งเข้ามา
ขั้นตอนที่ 5 นำ Web service ขึ้น Cloud!
ในการทดลองที่ผ่านมา จะเป็นการทดลองโดยใช้ server ที่เป็นเครื่องคอมพิวเตอร์ของเราเอง แต่ถ้าหากจะแบ่งปัน web service ให้คนอื่นใช้ด้วย ดังนั้นจำเป็นต้องนำไฟล์ที่เราได้เขียน ไปฝากไว้บน cloud นั่นเอง
โดยในที่นี้จะใช้เว็บไซต์ที่ชื่อว่า Heroku ซึ่งเป็น cloud application ที่สามารถนำเว็บของเราไปฝากไว้ที่นั่นได้ฟรี
เมื่อสมัครเสร็จแล้ว จากนั้นให้อัพโหลดไฟล์ service.php และ library nusoap ขึ้นไป และเมื่อเสร็จเรียบร้อย ก็จะสามารถใช้งาน web service ผ่าน cloud ได้ ดังรูป
ทดสอบการใช้งานโดยการเปลี่ยนโค้ด client.php ส่วนของลิ้ง wsdl ที่ตอนแรกเป็น localhost เปลี่ยนมาใช้เป็นลิ้ง https://webservicehello.herokuapp.com/index.php?wsdl แทน และลองกดเข้าไปดูไฟล์ ผลลัพธ์อีกรอบหนึ่ง ก็จะได้ผลลัพธ์เช่นเดิม
สามารถทดลองโค้ดได้ที่ https://github.com/peepraeza/webservice
ไม่มีความคิดเห็น:
แสดงความคิดเห็น