สอนสร้าง RESTful API แบบง่ายๆด้วย Google App Script
วันนี้ก็จะมานำเสนอการสร้าง Web Apps ง่ายๆ เช่น คำนวณเลขสั้นๆโดยใช้ Google App Script อ้างอิงบางส่วนจาก https://developers.google.com/apps-script/guides/web เพื่อความครบถ้วนค่า
Requirement ใน code มีดังนี้
- มีฟังก์ชั่น doPost(e) หรือ doGet(e)
- ฟังก์ชั่นต้อง return HtmlOutput หรือ TextOutput object
วันนี้เราจะใช้ฟังก์ชั่น doGet(e) กันนะคะเพราะเวลาเรียกใช้ request จะถูกส่งเป็น GET request
เราสามารถใส่ parameter ต่อหลัง link ได้ เช่น
https://script.google.com/"...link..."/exec?a=12&b=20&operation=sum
ขั้นแรกเราจะเขียน doGet(e) เพื่อรับรีเควส เราลองมาดูกันก่อนว่า parameter ที่เรารับมามันหน้าตาเป็นยังไง โดยใช้ Logger.log(e) แล้วก็ return อะไรสักอย่างเพื่อดูว่า API เรายิง request สำเร็จมั้ย
function doGet(e) {var params = e;Logger.log(e);return HtmlService.createHtmlOutput("Hello"); }
ก่อนจะใช้ต้อง Deploy Web App ก่อน ตามขั้นตอนนี้ Deploy > New Deployment > Select type > Web App ตรงช่อง Who has access ต้องเป็น anyone นะคะ
Deploy เสร็จแล้วก็เอาลิ้งค์ตรง Web app URL ไปใช้ได้เลยตามด้วย parameter ของเรา ในตัวอย่างนี้จะใช้แบบนี้ อย่าลืมใส่ ? นำหน้าด้วย
* หมายเหตุ ถ้าตัวโค้ดมีการเปลี่ยนแปลงก็ต้อง deploy ใหม่ หรือใช้ test deployments เพื่อทดสอบก็ได้
......?a=12&b=20&operation=sum
หลังจากเราใส่ URL เข้าไปหน้าเว็บของเราก็จะขึ้นแบบนี้ และถ้าไปดู log ก็จะขึ้นแบบรูปต่อมา
ที่นี้เราก็จะดึงค่าตัวแปรมาใช้จาก parameter = {b=20, operation = sum, a= 12}
var params = e.parameter;var a = e.parameter.a;var b = e.parameter.b;var operation = e.parameter.operation;
หลังจากนั้นก็เขียนฟังก์ชั่นไว้ใช้ วันนี้จะลองเขียนเป็น math operation ง่ายๆ เช่น บวก ลบ คูณ หาร แล้วก็ให้ return คำตอบกลับไปที่หน้าของเรา
ผลลัพธ์ก็จะออกมาตามที่เราใส่ parameter เลยค่ะ เช่น
เท่านี้ก็เสร็จแล้ว ง่ายมากๆเลยใช่มั้ยคะ มีวิธีใช้อีกเยอะเลย เช่น
- คำนวณราคาสินค้าพร้อม vat
- นำข้อมูลจาก parameter ไปใส่ใน google sheet
- ใช้รวมกับบอทของเราเพื่อคำนวณราคาให้ลูกค้า