สร้าง RESTful API แบบ happy happy ด้วย Hapi.js #1 Installation

Chayapol Chaimongkolnimit
Nextzy
Published in
3 min readApr 22, 2020

ช่วงหลาย 2–3 เดือนที่ผ่านมามานี้ได้บอกเลิกกับทั้ง React, Angular และงานทางฝั่ง frontend ทั้งหลายทั้งปวงอาจเป็นเพราะต้องมาคอยจัดการความต้องการ และความเยอะหลายๆ อย่าง ดังนั้นไหนๆ ก็เป็น javascript เหมือนกันอยู่แล้ว เลยหันมาเคาะประตูฝั่ง backend เพราะด้วยความหวังว่าจะนำพาเราไปสู่ชีวิตสดใสที่รอเราอยู่ ละมั้งนะ~

Hapi แค่ชื่อก็ฟังดู happy แล้วใช่มั๊ยล่ะ

Hapi.js เป็น NodeJS framework พัฒนาโดย Walmart ที่มีเครื่องมือทุกอย่างครบจบในที่เดียว เพื่อให้มนุษย์โค้ดอย่างเราๆโฟกัสกับการพัฒนา logic ได้อย่างเต็มที่ ดีกว่าเสียเวลาไปกับการเซ็ตโครงสร้าง infrastructure หรือมานั่งกังวลว่าจะหา library ตัวไหนมาใช้งาน พร้อมระบบ Plugin และ โครงสร้างในรูปแบบ configuration-driven pattern ที่จะช่วยให้การเพิ่ม ลด แก้ไข feature ทำได้อย่างง่ายดาย

ในบทความนี้เราจะติ๊งต่างว่าผู้อ่านมีความเข้าใจพื้นฐาน javascript มาแล้วในระดับหนึ่งไม่มากก็น้อย สำหรับใครที่ยังสดๆ ซิงๆ ไม่เคยมีประสบการณ์ ก็แนะนำให้ลองปรึษากับ google sensei ดูก่อนนะ :)

เตรียมตัวกันก่อน

สิ่งที่เราต้องมีก่อน และจะขาดไม่ได้เลยก็คือ Node.js ใครที่ยังไม่รู้จักก็ขอเชิญทัศนา Node.js ที่เหลือก็เป็นเครื่องมือที่คุ้นเคยกันดีอย่าง package manage อย่าง npm หรือ yarn จะใช้อะไรก็ตามที่ถนัด แต่รายละเอียด version ที่ใช้ดูได้ตามด้านล่างนี้เลย

node 12.11.1
yarn 1.13.0
hapi 19.1.1

สร้างโปรเจค

สร้างโฟเดอร์ที่จะเก็บ code โปรเจคเราขึ้นมาก่อน (ตรงนี้จะตั้งชื่ออะไรก็ได้นะ)

จากนั้น init โปรเจคด้วยคำสั่ง npm init หรือ yarn init และใส่ข้อมูลโปรเจคเราลงไป

เมื่อทำตามขั้นตอนด้านบนเสร็จเราจะได้ไฟล์ package.json พร้อมข้อมูลที่เราใส่มาประมาณนี้

จากนั้นก็ให้สร้างไฟล์ index.js เตรียมเอาไว้เป็นไฟล์ที่เราจะใช้เขียนโค้ดกันต่อไป

ติดตั้ง hapi.js

หลังจากที่เราสร้างโปรเจคกันมาเรียบร้อยแล้ว ต่อมาเราจะทำการติดตั้ง Hapi กันโดยใช้คำสั่ง yarn add หรือ npm install ก็แล้วแต่

หลังจากติดตั้งเสร็จแล้วในไฟล์ package.json จะมีหน้าตาแบบนี้ พร้อมกับมีโฟรเดอร์ node_module โผล่ขึ้นมาในโปรเจ็ค ก็จะถือว่าเราติดตั้งได้ hapi เสร็จเรียบร้อยแล้ว

สร้าง Hapi server

เมื่อเราทำการติดตั้ง Hapi เสร็จแล้วต่อมาเราก็จะมาเขียนโค้ดในส่วนของการสร้าง ตัว hapi server ขึ้นมาตามโดยเขียนโค้ดตามด้านล่างนี้เลย

จากโค้ดด้านบนเราจะสร้าง Hapi server object โดยส่ง config object จากนั้นเมื่อเราสั่ง start() ตัว Hapi ก็จะไปทำงานอยู่บน host และ port ของ config object ที่เราส่งเข้าไปนั้นเอง ที่นี้มาลองทดสอบโดยใช้คำสั่ง

ใครถนัดเขียนเป็น script ก็ไม่ว่ากัน

ถ้าไม่มีอะไรผิดพลาด server ของเราก็จะ start ขึ้นมาทำงานแล้ว เย้~

กำหนด Route

หลังจากที่เรา start server ขึ้นมาได้แล้ว แต่ถ้าหากเราลองเปิดบราวเซอร์ และลองเข้าไปดูใน url จะพบข้อความประมาณว่า 404 หรือ Not found นั้นเป็นเพราะ เรายังไม่ได้กำหนด Route ให้มัน วิธีแก้ก็เพียงให้เราเตรียมดอกไม้ ธูป เทียน ใส่พานแล้ว อธิฐาน เป็นการไหว้ครูว่า

Hello World !

โค้ดด้านบนเราได้เพิ่มโค้ด server.route() ซึ่งเป็นการบอกให้ server เพิ่ม Route นี้เข้าไป โดยส่ง configuration object ดังนี้

method: http method ‘GET’ ‘POST’ ‘PUT’ ‘DELETE’ etc. ตามแต่ที่เราจะกำหนด
path: เส้นทางที่เราจะใช้เรียก route นี้ ในที่นี้กำหนดเป็น root ก็คือหน้าแรกนั้นเอง
handler: ฟังก์ชันที่กำหนดการทำงานหรือขั้นตอนต่างๆ หากมี request มาที่ path นี้

หลังจากนั้นลอง start server ดูอีกครั้งก็จะพบข้อความ Hello world !
ลองทดสอบด้วย postman

จะเห็นว่าถ้าเราต้องการเพิ่ม API เส้นอื่นขึ้นมาอีกเราก็เพียงแต่เพิ่ม route อื่นเข้าไปอีกเพียงแค่นี้ก็เราสามารถสร้าง RESTful API อย่างง่ายๆขึ้นมาได้แล้ว

หลังจากที่ได้ลองเล่นมา 2–3 เดือน Hapi ก็เป็น Node framework ตัวหนึ่งที่ใช้งานง่าย ครบเครื่องและ learning curve ไม่สูงมาก ถ้ามีโอกาสอยากแนะนำให้เพื่อนลองหยิบมาเล่นกันดูสักครั้งครับ

สำหรับใครที่อยากเรียนรู้เพิ่มเติมเกี่ยวกับตัว Hapi ที่ยังมีของเล่นให้เล่นอีกมากมาย ที่ทาง Hapi ได้เตรียมให้เราไว้เรียบร้อยแล้วไม่ต้องไปหาที่ไหนก็เข้าไปดูกันได้ที่ลิงค์ด้านล่างเลย

Reference

--

--