สำหรับการเริ่มต้นใช้งาน GraphQL นั้น
พบว่าต้องใช้เครื่องมือและ library หลาย ๆ ตัว
แน่นอนว่า ต้องลงมือทำเองทั้งหมด
ทั้งการ configuration ต่าง ๆ ของ GraphQL
ทั้งการดู schema
ทั้งการตรวสอบ schema
ซึ่งดูแล้วมันยากและกระจัดกระจายยังไงก็ไม่รู้ (แต่ถ้าเข้าใจก็ไม่ยากนะ)
ดังนั้นมาหาเครื่องมือที่ช่วยทำให้การพัฒนาและใช้งานง่ายขึ้นหน่อย
ก็ไปเจอมา 2 ตัวคือ
ตัวที่น่าสนใจคือ GraphQL CLI มาลองใช้งานดูกัน
เริ่มด้วยการติดตั้งผ่าน NPM
$npm install -g graphql-cli
ซึ่งมีความสามารถที่น่าสนใจดังนี้
- ทำการสร้าง configuration ที่จำเป็นต่อการเริ่มต้น project
- ทำการเพิ่ม endpoint
- ทำการตรวจสอบ endpoint
- ทำการดึงข้อมูล schema ของแต่ละ endpoint
- ทำการเปรียบเทียบ schema ขอแต่ละ environment ได้ เช่น dev กับ prod เป็นต้น
อีกทั้งยังมีระบบ plugin ให้อีกด้วย เช่น
- graphql-cli-voyager สำหรับแสดง schema ในรูปแบบ graph สวย ๆ
- graphql-cli-faker สำหรับการ run fake server ด้วย schema ของเรา ทำงานผ่าน graphql-faker (แต่ยังไม่เสร็จนะ)
ตัวอย่างการแสดงข้อมูลของ Github API
ดังนั้นลองมาใช้งาน GraphQL CLI กันหน่อยสิ
ทำการ init configuration กันก่อน
$graphql init
สิ่งที่สำคัญคือ
การกำหนด Endpoint URL ของ GraphQL
การกำหนดชื่อ environment ของ Endpoint
ผลการทำงานคือ จะดึง schema ของ GraphQL จาก endpoint ที่กำหนดไว้มายังไฟล์ schema.graphql
ทำการดึง schema ล่าสุดของ environment ต่าง ๆ ได้
เพื่อทำให้เราได้ schema ล่าสุดมาใช้งาน
$graphql get-schema <environment>
ทำการตรวจสอบ schema ได้ว่า
มี source หรือ endpoint มาจากที่ไหน ?
ทำการแก้ไขล่าสุดเมื่อไร
$graphql schema-status
ทำการตรวจสอบว่า endpoint ยังเปิดให้ใช้งานหรือไม่ ?
$graphql ping <environment>
ทำการตรวจสอบ schema ของแต่ละ environment ได้
เพื่อทำให้เรามั่นใจได้ว่า schema เหมือนกันจริง ๆ นะ
$graphql <first environment> <second environment>
ทำการดู schema ของ GraphQL APIs กันแบบ interactive ผ่าน web browser กัน
ทำให้เข้าใจ schema ได้ง่ายขึ้น
ซึ่งเป็นการปรับปรุงและต่อยอดมาจาก GraphiQL นั่นเอง
$graphql graphql playground <environment>
จะทำการเปิด browser ขึ้นมาตามนี้
มี document ของ schema ให้ดู
มี auto-suggestion/completion ให้
ใช้งานง่ายมาก ๆ ถ้าเคยใช้งาน GraphiQL มานะ
ปิดท้ายด้วย GraphQL Faker กันหน่อย ซึ่งน่าจะมีประโยชน์มากพอควร
เป็นเครื่องมือช่วยในการจำลอง GraphQL server
เพียงแค่กำหนด schema ต่าง ๆ ไว้และบันทึก
จากนั้นเครื่องมือนี้จะสร้าง endpoint ให้เลย (เหมือนจริงแต่ข้อมูลจำลองเท่านั้น)
รวมทั้งมี GraphiQL มาให้ใช้อีกด้วย
ตัวอย่างของการกำหนด schema และข้อมูลจำลอง แสดงดังรูป
โดยรวมแล้วมันใช้งานง่ายมาก ๆ
แถมทำให้ผู้ใช้งาน GraphQL สบายขึ้นอย่างมาก
ดังนั้นมาลองใช้งานกันนะ