ก่อนอื่นต้องขอออกตัวก่อน เพิ่งใช้ GraphQL มาไม่นาน ส่วนตัวที่ใช้ กะเอามาแทน RESTful API เดิมที่เคยใช้ ซึ่งตอนเอามามาใช้ก็ Replace แทนของเดิมได้เลยคือ POST/GET ข้อดีที่เห็นชัดเลยก็ Document กับการทำ Hierarchical เรื่องการดึงข้อมูลที่ง่าย ส่วนวันนี้ผมจะมายกตัวอย่างการใช้ GraphQL กับ MySQL นะครับ

เพื่อมเติมอีกนิดเรื่อง GraphQL มันเป็นเป็นภาษาในการ Query ภาษาหนึ่งเหมาะเอามาทำ API โดยตัวมันทำงานผ่าน NodeJS เป็น Server ซึ่งจะเลือกใช้ GraphiQL หรือ RESTful ก็แล้วแต่เรา แต่ด้วยตัวมันเองไม่ใช่ Database มันต้องอาศัยการเขียนโปรแกรมเพื่อเชื่อม Database ไปอีกที่นึง สัญลักษณ์สวยงมตามท้องเรื่องสีชมพู GraphSQL นั้นถูกใช้และสร้างโดย Facebook ก่อนที่จะโอนไปเป็น Opensource ในเว็บ GraphQL.org โดยเอาไปใช้กับ FacebookMobile ปัจจุบันยังใช้อยู่หรือเปล่าอันนี้ไม่ทราบ แต่ด้วยความสามารถมันแล้วถือว่าดีมาก

ก่อนที่เราจะเริ่มต้องทำความเข้าใจ คำศัพท์ใหม่ บนเรื่องเก่าซะก่อน
1. Field — >> จริงๆ ผมอยากเรียกว่า Query แต่มันก็จะทับ กับ Query ที่บน GraphQL ที่ทำหน้าที่เหมือนจะเป็น Table
2. Type — >> จริงๆ ผมอยากเรียกว่า Filed แต่มันก็จะทับกับคำว่า Field ที่บน GraphQL ที่ทำหน้าที่เหมือนจะเป็น Query ซึ่งมันสามารถทำ Sub Query ได้อีกตรง Type
3. Argument –>> ตรงตัว มันคือ Parameter ที่ใช้

เริ่มสร้าง Project ด้วย Express generator ก็ได้ครับ
ลง Node นะครับรุ่นไหนก็ได้ครับ

ต่อไปเราก็จะลองแยก GraphQL ออกเป็น 3 ส่วนนะครับ
อันนี้เป็นการแยกเพื่อให้ดูแลรักษา Code ได้ง่ายนะครับ

– Model มีหน้าที่เก็บ Type , Argument , SQL Command
– Controller มีหน้าที่เก็บ Description ของ Query และ รายการ Query ทั้งหมดของ Controller นั้นๆ แต่ไม่เก็บ Query Command เพราะจะได้คง Concept เป็น Controller

เริ่มสร้าง Model 

เริ่มสร้าง Controller โดย นำข้อมูล import มาจาก model

สร้างไฟล์ app.js

จากนั้น บันทึกและทำการ NPM Star

 

 

Written by adminwp