เนื่องจากผมอยากลองเขียน REST ง่ายๆเอาไว้ลองกับงาน Side Project ดูครับ ส่วนตัวแล้วเคยจับ Express มาบ้างแบบน้อยนิด ซึ่งปกติก็ต้องมานั่งเขียน Route กันเองแล้วมาเช็ค Path เลยหา Framework อื่นดู ก็เจอว่ามีทั้ง Sails, Restify และอื่นๆ แต่ลองนึกดูเคยมีคนพูดถึง LoopBack ให้ผมฟัง ผมเลยลองมาใช้ตัวนี้ดีกว่า เพราะเห็นว่า IBM เป็นผู้สนับสนุนรายใหญ่ซึ่งจริงๆแล้วพัฒนาโดย StrongLoop
ก่อนอื่นเข้าไป official site https://loopback.io/ ก่อนเลย ก็เจอว่า Get Started ไม่มี Code ตัวอย่างเลยครับ งั้นมันทำงานยังไงกันนี่ เรามาลองดูกัน
ก่อนอื่นเท่าที่ผมเข้าใจ LoopBack เนี่ยจะใช้แนวคิดเรื่อง Model มากกว่าการ Route ซึ่งหมายความว่าการที่เราจะเพิ่ม API เข้าไป ก็จะเป็นการทำงานเกี่ยวข้องกับ Model (เหมือนกับการเขียน function handler ของ Model) เพราะหน้าที่การ Route นั้น LoopBack จัดการให้เราหมดแล้ว ผ่าน Express นั่นแหละ….
เริ่มแรกเราต้อง Install ตัว LoopBack ก่อนครับ (เป็น commandline interface – CLI)
หลักจากนั้นเราจะต้องทำการสร้าง Project จาก Template ครับด้วย
จากนั้นเราจะต้องทำการตั้งชื่อ Project เลือก Directory รวมถึงเลือก LoopBack version สิ่งที่ได้คือ Folders และ ไฟล์ต่างๆหน้าตาแบบนี้โดยผมสร้าง Project แบบ api-server ฉะนั้นส่วนที่จะต้องแก้น่าจะทำใน Folder ชื่อ server หลังจากนั้นเราก็ลองทำการสร้าง Model กันครับ เพราะอย่างที่ผมบอกไปข้างต้นว่า loopback นั้นใช้ Model driven ในการพัฒนา REST API
ผมจะสร้าง Model ง่ายๆใช้สำหรับเก็บข้อมูล user ละกันครับ ตัว CLI มันก็จะให้เราตอบไปว่าจะใช้ Feature อะไรของ LoopBack บ้าง เช่น ที่นี้ผมก็จะสร้าง properties หรือ attibutes ของ user ครับ โดยที่มี เมื่อสร้างเสร็จแล้วเราก็จะเห็น Folder ชื่อ common ถูกสร้างขึ้นมารวมทั้งมี Subfolder ชื่อ Model ที่มีไฟล์ user.js/json ซึ่งตรงกับที่เราสร้างข้างต้น เราจะเห็นว่า ที่นี้เราลองมารันดูครับ node . ลองเข้าผ่าน localhost:3000/explorer ดูก็จะพบว่ามี API Tool (หน้าตาเหมือน Swagger ให้เลยครับ) เรามาลอง POST เพื่อสร้าง Model object ดีกว่า จะเห็นว่าหลังจากกดปุ่ม Try it out! ก็จะทำการยิง http request ไปที่ /api/user และได้รับ message ตอบรับว่า 200 และได้รับ id:1 เป็นค่า key ดังนั้นถ้าผมลอง GET ด้วย id :1 เราควรจะได้ object นี้กลับมากนะครับ ลองผ่าน Postman (ซึ่งเป็น Tool ที่ใช้ได้การส่ง HTTP request) กันดีกว่า ได้ response ตามคาด! จะเห็นว่าการสร้าง REST API แบบง่ายๆด้วย LoopBack นี่ไม่ต้องเขียน Code เลยซักบรรทัด แต่ความสามารถของ LoopBack ยังมีอีกเยอะ เช่นการ Extend API ให้ซับซ้อนยิ่งขึ้น การติดต่อกับ Data-source แบบอื่นๆเช่น MySQL หรือ MongoDB เจอกันคราวหน้าครับ 🙂$ npm install -g strongloop
$ slc loopback
$ slc loopback:model
Notes:
2 thoughts on “Node.js เขียน REST API ด้วย LoopBack”