สำหรับการเริ่มต้นใช้งาน 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 สบายขึ้นอย่างมาก
ดังนั้นมาลองใช้งานกันนะ

Tags: