สอนสร้าง 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
  • ใช้รวมกับบอทของเราเพื่อคำนวณราคาให้ลูกค้า

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Nutsuda Ploysopond

Nutsuda Ploysopond

More from Medium

Storing data sessions on the server with express-session

Google clone

Using the twitter API with Node.js (2)

Deploying an Express API to Google App Engine