REST API vs GraphQL เลือกอะไรดี
REST และ GraphQL เป็นสองแนวทางหลักในการออกแบบ API ที่มีปรัชญาต่างกันอย่างสิ้นเชิง การเลือกใช้ขึ้นอยู่กับ use case และความต้องการของโปรเจกต์
REST ใช้ HTTP methods และ URL เป็นตัวกำหนด resource โดยแต่ละ endpoint return ข้อมูลในรูปแบบที่ server กำหนดไว้ ข้อดีคือเข้าใจง่าย caching ทำได้ตรงไปตรงมาด้วย HTTP cache headers และ tooling มีพร้อมมาก
GraphQL ให้ client เป็นผู้กำหนดว่าต้องการข้อมูลอะไร ทำให้แก้ปัญหา over-fetching และ under-fetching ได้ดี เหมาะมากสำหรับ mobile app ที่ bandwidth จำกัด และ frontend หลายแบบที่ต้องการข้อมูลต่างกัน
ในแง่ performance REST อาจเร็วกว่าสำหรับ simple queries เพราะไม่มี overhead ของ query parsing แต่ GraphQL ชนะในกรณีที่ต้องดึงข้อมูลจากหลาย resource ในครั้งเดียว
สำหรับโปรเจกต์ส่วนใหญ่ REST เพียงพอและง่ายกว่า ควรพิจารณา GraphQL เมื่อมี frontend หลายแบบ, ข้อมูลซับซ้อน หรือต้องการ real-time subscriptions