GraphQL


GraphQL เป็นภาษาสำหรับการเข้าถึงข้อมูล (Query Language) เพื่อการใช้งาน API ของระบบและจะประมวลผลคำสั่งที่ฝั่ง Server หรือที่เรียกว่า Server-Side Runtime ถูกพัฒนาขึ้นโดย Facebook เพื่อมาช่วยให้ Front-end Developer สามารถเขียน Query ข้อมูลในรูปแบบที่มีความยืดหยุ่นได้มากกว่า ผู้ใช้สามารถกำหนดวิธีที่ต้องการจะดึงข้อมูลและรูปแบบข้อมูลที่ต้องการเองได้เลย โดยที่ Back-end Developer ไม่จำเป็นต้องพัฒนา API ใหม่เพิ่มกรณีที่โครงสร้างข้อมูลยังเหมือนเดิม ซึ่งจะช่วยแก้ปัญหาของ RESTful API ที่เวลาออกแบบ API ไปแล้ว Request และ Response จะต้องเป็นไปตามที่เขียนโปรแกรมไว้ เช่น อาจจะได้ข้อมูลเกินกว่าที่ต้องการ หรือ ได้ข้อมูลไม่ครบตามที่ต้องการ ต้องเรียก API หลายครั้ง เป็นต้น

GraphQL ของ NEXPIE Platform จะมี Graphcool Playground เป็น Backend as a Service ในการสร้าง GraphQL backend โดยที่สามารถจัดการกับ Database Schema และ Data ผ่าน Web UI ได้ สามารถเข้าใช้งานได้ที่ https://gql.nexpie.io โดยจะมีลักษณะดังรูปต่อไปนี้


_images/gql_UI.png

จากรูปด้านบนจะถูกแบ่งเป็น 3 ส่วน ส่วนบนซ้าย ใช้สำหรับระบุ Function ที่ต้องการเรียกใช้, ส่วนล่างซ้าย ใช้สำหรับระบุตัวแปรที่จะส่งผ่าน HTTP Headers (ในที่นี้จะเป็นตัวแปร Authorization) และส่วนบนขวา ใช้สำหรับระบุ แสดงผลลัพธ์ที่ตอบกลับมาจากฝั่ง Server โดยเริ่มจากกรอกข้อมูลในส่วนบนซ้าย และล่างซ้าย(ถ้า Function ที่ใช้งานจำเป็นต้อง Authentication) จากนั้นให้คลิกที่ Play Icon เพื่อ Executed Function สำหรับโครงสร้าง Function และข้อมูลที่กำหนดไว้สามารถแยกได้เป็น 2 ประเภท ดังนี้