GraphQL vs REST: ทุกสิ่งที่คุณต้องการรู้
เผยแพร่แล้ว: 2022-09-20การเลือกเทคโนโลยีที่จะรวมอยู่ในกลุ่มเทคโนโลยีของโครงการถัดไปอาจเป็นเรื่องยาก ในหลายกรณี — โดยเฉพาะอย่างยิ่งเมื่อต้องเลือกระหว่าง GraphQL และ RESTful API — ทั้งหมดนี้คือการเลือกสถาปัตยกรรมการออกแบบ API ที่ดีที่สุดตัวถัดไป
มีสี่วิธีที่สำคัญในการสร้าง API: SOAP, GRPC, REST และ GraphQL เรามักจะจำกัดความคิดของเราให้เหลือเพียง REST และ GraphQL เมื่อใดก็ตามที่เราต้องการสร้าง API เนื่องจาก REST ได้เปลี่ยนวิธีการดั้งเดิมในการสร้าง API ด้วย SOAP และ GRPC
GraphQL ได้รับการติดแท็กอย่างกว้างขวางว่าเป็น REST ที่ดีกว่า เนื่องจากเป็นวิธีที่ดีกว่าในการสร้าง API นักพัฒนาหลายคนเชื่อว่า GraphQL จะเข้ามาแทนที่ REST หลายคนค้นพบแล้วว่า GraphQL ช่วยแก้ปัญหาความท้าทายทั่วไปที่นักพัฒนาต้องเผชิญขณะสร้าง REST API
สองวิธีในการสร้าง API นี้แตกต่างกันอย่างสิ้นเชิง ในทางปฏิบัติ เทคโนโลยีเหล่านี้ทำงานโดยส่งคำขอ HTTP และรับผลลัพธ์ ทั้งสองมีข้อดีและข้อเสีย และในบทความนี้ เราจะพูดถึงเทคโนโลยีที่ยอดเยี่ยมทั้งสองนี้อย่างครอบคลุม ซึ่งได้เปลี่ยนวิธีที่เราพัฒนาและปรับขนาด API
ก่อนที่เราจะลงลึกในรายละเอียด เรามาสำรวจความหมายของ GraphQL และ RESTful API กันก่อน
GraphQL คืออะไร?
GraphQL เป็นภาษาการสืบค้น API เช่นเดียวกับรันไทม์สำหรับการตอบคำถามเหล่านั้นด้วยข้อมูลที่มีอยู่ นอกจากนี้ยังมาพร้อมกับเครื่องมืออันทรงพลังสำหรับจัดการกับคำถามที่ซับซ้อนที่สุด
คุณสมบัติหลักของ GraphQL คือความสามารถในการขอและรับ เฉพาะ ข้อมูลที่ร้องขอเท่านั้น ไม่มีอะไรเพิ่มเติม ซึ่งทำให้ง่ายต่อการปรับขนาด API ของคุณไปพร้อมกับแอปของคุณ
ส่วนที่น่าตื่นเต้นที่สุดของ GraphQL คือความสามารถในการให้ข้อมูลทั้งหมดแก่คุณในปลายทางเดียว
ไดอะแกรมด้านบนคือการแสดงทั่วไปของสถาปัตยกรรม GraphQL ลูกค้าส่งคำขอจากอุปกรณ์ต่างๆ และ GraphQL จะจัดการคำขอและส่งคืนเฉพาะข้อมูลที่ร้องขอเท่านั้น วิธีนี้ช่วยแก้ปัญหาการดึงข้อมูลมากเกินไปและการดึงข้อมูลไม่เพียงพอใน RESTful API ได้อย่างเรียบร้อย
ในตัวอย่างข้างต้น เราแสดงสนามเด็กเล่นของ GraphQL และวิธีที่คุณสามารถสืบค้นข้อมูลด้วยจุดปลายเดียว ที่ด้านบนสุดคือจุดปลาย API ทางด้านซ้ายคือข้อความค้นหาที่ขอชื่อทวีป และสุดท้ายทางด้านขวา เราจะตอบสนองต่อการสืบค้นที่เราขอ
GraphQL สร้างขึ้นโดย Facebook เพื่อจุดประสงค์หลักในการแก้ปัญหาประสบการณ์ของนักพัฒนาแอพมือถือในขณะที่ทำงานกับ REST API ตั้งแต่เวอร์ชันโอเพ่นซอร์สรุ่นแรกออกสู่ตลาดในปี 2015 GraphQL ก็มีการเติบโตอย่างมากจากการใช้เทคโนโลยีโดยผู้เล่นรายใหญ่ในธุรกิจเทคโนโลยี
บริษัทที่ใช้ GraphQL
ด้านล่างนี้คือรายชื่อบริษัทและแอปพลิเคชันบางส่วนที่ใช้ GraphQL อย่างแข็งขันบนเซิร์ฟเวอร์ของตน
Facebook สร้าง GraphQL และพวกเขาใช้มันในการผลิตเพื่อขับเคลื่อนแอพมือถือของพวกเขาตั้งแต่ปี 2012 บริษัท โซเชียลเน็ตเวิร์กมูลค่าหลายพันล้านดอลลาร์เปิดแหล่งที่มาของข้อมูล GraphQL ในปี 2015 ทำให้สามารถเข้าถึงได้จากหลายสภาพแวดล้อมและสำหรับทีมทุกขนาด .
GitHub
GitHub ยังประกาศการใช้ GraphQL ด้วยการจัดหา GraphQL API สำหรับการสร้างการรวม การดึงข้อมูล และทำให้เวิร์กโฟลว์ของคุณทำงานโดยอัตโนมัติโดยใช้ GitHub GraphQL API GitHub GraphQL API นำเสนอการสืบค้นที่แม่นยำและยืดหยุ่นมากกว่า GitHub REST API
Pinterest ยังเป็นผู้ใช้รายแรกๆ ของ GraphQL ยักษ์ใหญ่แห่งการแบ่งปันภาพถ่ายได้กล่าวถึงการสำรวจเบื้องต้นเกี่ยวกับ GraphQL และวิธีที่พวกเขาใช้เทคโนโลยี GraphQL ที่ขับเคลื่อนบริษัทที่มีมูลค่าหลายพันล้านดอลลาร์
บริษัทอื่นๆ ที่มีมูลค่าหลายพันล้านดอลลาร์ เช่น Intuit, Shopify, Coursera และ Airbnb ขับเคลื่อนแอปพลิเคชันด้วย GraphQL และการตั้งค่า REST ที่กว้างขวางนี้ยังคงเติบโตอย่างต่อเนื่อง
RESTful API คืออะไร?
REST ย่อมาจาก "Representational State Transfer" ซึ่งเป็นรูปแบบสถาปัตยกรรมซอฟต์แวร์สำหรับระบบไฮเปอร์มีเดียแบบกระจาย กำหนดหลักการและข้อจำกัดในการแลกเปลี่ยนทรัพยากรระหว่างเซิร์ฟเวอร์และไคลเอนต์
หากปฏิบัติตามหลักการเหล่านี้ใน API แอปพลิเคชันของ API นั้นจะเรียกว่า “RESTful” WordPress REST API เป็นตัวอย่างที่สำคัญของเรื่องนี้
ด้านล่างนี้คือหลักการและข้อจำกัดบางประการที่ API ต้องปฏิบัติตามจึงจะเรียกว่า Restful API:
- Client-Server Decouple: ไคลเอ็นต์ (ส่วนหน้า) และเซิร์ฟเวอร์ (แบ็กเอนด์) แยกจากกันโดยสิ้นเชิงและสามารถสื่อสารผ่านจุดปลายได้เท่านั้น
- อินเทอร์ เฟซแบบเดียวกัน: ข้อมูลที่เห็นในอินเทอร์เฟซจะเหมือนกันในทุกอุปกรณ์
- การ ไร้สัญชาติ: เซิร์ฟเวอร์ไม่จดจำว่ามีการร้องขอปัจจุบันเป็นครั้งแรกหรือไม่ ทุกครั้งที่มีการร้องขอ จะต้องมีข้อมูลทั้งหมดที่จำเป็นในการดำเนินการตั้งแต่เริ่มต้น
- ความสามารถในการแคช : อนุญาตให้จัดเก็บแคชและเซสชันได้ แต่ต้องกำหนดค่าไว้เพื่อให้ผู้ใช้ปลายทางเลือกไม่ใช้การแคชข้อมูลได้
- สถาปัตยกรรมระบบแบบเลเยอร์: API ต้องได้รับการออกแบบมาเพื่อไม่ให้ทั้งไคลเอ็นต์และเซิร์ฟเวอร์สามารถบอกได้ว่าพวกเขากำลังสื่อสารโดยตรงหรือผ่านตัวกลาง
แผนภาพด้านล่างเป็นสถาปัตยกรรม REST พื้นฐาน มันแสดงให้เห็นว่าโดยทั่วไปแล้วคำขอและการตอบสนองจะได้รับการจัดการอย่างไร
ประโยชน์ของ GraphQL
ด้านล่างนี้คือประโยชน์บางประการของการใช้ GraphQL ซึ่งแสดงให้เห็นว่าเหตุใดจึงมากเกินพอสำหรับการสร้างแอปมูลค่าพันล้านดอลลาร์ถัดไป
การดึงข้อมูลผ่านจุดปลาย API เดียว
ข้อได้เปรียบสูงสุดของ GraphQL คือความสามารถในการเข้าถึงจุดข้อมูลใดๆ หรือทั้งหมดผ่านจุดปลาย API เดียว
ปัญหาที่พบบ่อยที่สุดประการหนึ่งของ RESTful API คือการมีปลายทางมากเกินไปในการเข้าถึงข้อมูล ใน GraphQL คุณจะมีจุดสิ้นสุดเพียงจุดเดียว ดังนั้นคุณไม่จำเป็นต้องส่งคำขอหลายรายการเพื่อเรียกข้อมูลที่แตกต่างกันเกี่ยวกับวัตถุ
แผนภาพด้านล่างแสดงตัวอย่างที่ชัดเจนของการดึงทรัพยากรโดยใช้ RESTful API และ GraphQL คุณจะเห็นว่ามีจุดสิ้นสุดเพียงจุดเดียวในการเข้าถึงทรัพยากรในเซิร์ฟเวอร์ GraphQL ในขณะที่ปลายทาง API หลายจุดจำเป็นในการเข้าถึงทรัพยากรต่างๆ ใน RESTful API
ไม่มีการดึงข้อมูลมากเกินไปหรือน้อยเกินไป
ปัญหาการดึงข้อมูลมากหรือน้อยไปเป็นปัญหาที่ทราบแล้วของ RESTful API นี่คือเวลาที่ลูกค้าดาวน์โหลดข้อมูลโดยกดจุดปลายที่ส่งคืนโครงสร้างข้อมูลคงที่ มิฉะนั้นจะดึงข้อมูลมากหรือน้อยกว่าที่คาดไว้
ผลการดึงข้อมูลมากเกินไปในคำขอที่ได้รับ — หรือ “การดึงข้อมูล” — ข้อมูลมากกว่าที่ต้องการโดยการร้องขอที่กำหนด ลองนึกภาพว่าคุณกำลังเรียกผู้ใช้ทั้งหมดในตารางโดยมีจุดประสงค์เพื่อแสดงชื่อผู้ใช้ในหน้าแรกของคุณ ในกรณีดังกล่าว การดึงข้อมูลมากเกินไปจะส่งคืน ข้อมูลทั้งหมด ของผู้ใช้แต่ละราย ซึ่งรวมถึง (แต่ไม่เพียงเท่านั้น) ชื่อ
การดึงข้อมูลน้อยไปนั้นค่อนข้างหายาก แต่เกิดขึ้นเมื่อปลายทางที่ระบุไม่สามารถให้ข้อมูลที่ร้องขอทั้งหมดได้ ลูกค้าจะต้องส่งคำขอเพิ่มเติมเพื่อเข้าถึงข้อมูลอื่นๆ ตามความจำเป็น
GraphQL แก้ปัญหาการดึงข้อมูลมากเกินไปหรือดึงข้อมูลน้อยเกินไปอย่างมีประสิทธิภาพโดยดึงทรัพยากรที่ลูกค้าร้องขอโดยไม่มีรายละเอียดเพิ่มเติม
การจัดการที่ดีขึ้นของระบบที่ซับซ้อนและไมโครเซอร์วิส
GraphQL สามารถรวมและซ่อนความซับซ้อนของระบบหลายระบบที่รวมเข้าด้วยกัน
ตัวอย่างเช่น สมมติว่าเราต้องการย้ายจากแอปพลิเคชันแบ็กเอนด์แบบเสาหินไปยังสถาปัตยกรรมไมโครเซอร์วิส GraphQL API ช่วยในการจัดการการสื่อสารระหว่างไมโครเซอร์วิสต่างๆ โดยการรวมเป็นหนึ่งสคีมา GraphQL
เมื่อกำหนดสคีมาเหล่านี้แล้ว ทั้งฟรอนท์เอนด์และแบ็กเอนด์สามารถสื่อสารแยกกันโดยไม่มีการเปลี่ยนแปลงใดๆ เพิ่มเติม เนื่องจากฟรอนท์เอนด์รู้ว่าข้อมูลในสคีมาจะซิงค์กันทั่วทั้งระบบเสมอ
รวดเร็วและปลอดภัย
ปัญหาของการดึงข้อมูลมากเกินไปอาจส่งผลให้มีการใช้แบนด์วิดท์ที่สูงขึ้นสำหรับไคลเอ็นต์ ซึ่งอาจส่งผลให้แอปพลิเคชันของคุณล่าช้า การใช้รูปแบบการออกแบบ RESTful API นั้นใช้เวลานานกว่าในการคัดแยกข้อมูลที่จำเป็นจากเพย์โหลดจำนวนมหาศาล
เนื่องจากความสามารถของ GraphQL ในการหลีกเลี่ยงการดึงข้อมูลมากเกินไปและอยู่ภายใต้การดึงข้อมูล เซิร์ฟเวอร์จึงส่งคืนรูปแบบที่ปลอดภัย อ่านง่าย และคาดการณ์ได้ ซึ่งทำให้คำขอ API และการตอบสนองของคุณเร็วขึ้น
ประโยชน์ของ REST
แม้ว่า GraphQL จะได้รับความนิยมเพิ่มขึ้น แต่ REST ก็ยังเป็นหนึ่งในมาตรฐาน API ที่ได้รับความนิยมมากที่สุด มาดูกันว่าทำไม
- Learning Curve: RESTful API นั้นง่ายที่สุดในการเรียนรู้และทำความเข้าใจ นี่เป็นข้อได้เปรียบหลักเหนือ API อื่นๆ
- การทำให้ เป็นอันดับ: REST มาพร้อมกับวิธีการและรูปแบบที่ยืดหยุ่นสำหรับการจัดลำดับข้อมูลใน JSON
- การแคช: REST API สามารถจัดการการโหลดสูงด้วยความช่วยเหลือของพร็อกซีเซิร์ฟเวอร์ HTTP และแคช
- คำขอที่ซับซ้อน: REST API มีปลายทางแยกต่างหากสำหรับคำขอที่แตกต่างกัน และช่วยให้คำขอที่ซับซ้อนสามารถจัดการได้ดีกว่าใน API อื่นๆ
- สะอาดและเรียบง่าย: REST API สวยงาม เรียบง่าย และสะอาดตา พวกมันตรงไปตรงมาในการสำรวจ
- ขั้นตอน HTTP มาตรฐาน: REST ใช้การเรียกโพรซีเดอร์ HTTP มาตรฐานเพื่อดึงข้อมูลและทำการร้องขอ
- ไคลเอนต์/เซิร์ฟเวอร์: ซึ่งหมายความว่าตรรกะทางธุรกิจของมันถูกแยกออกจากการนำเสนอ ดังนั้นคุณจึงสามารถเปลี่ยนแปลงสิ่งหนึ่งได้โดยไม่กระทบกับอีกสิ่งหนึ่ง
- REST Is Stateless: ข้อความทั้งหมดที่แลกเปลี่ยนระหว่างไคลเอนต์และเซิร์ฟเวอร์มีบริบททั้งหมดที่จำเป็นในการรู้ว่าจะทำอย่างไรกับข้อความ
ข้อเสียของ GraphQL
ตอนนี้เราได้พูดถึงข้อดีของ GraphQL กับ REST แล้ว เรามาสำรวจข้อเสียของ GraphQL กัน:
- เส้นโค้งการเรียนรู้ที่ยาก: GraphQL ไม่ใช่เรื่องง่ายที่จะเรียนรู้เหมือน REST ส่วนที่ท้าทายที่สุดในการสร้าง GraphQL API คือการออกแบบสคีมา ต้องใช้เวลาและความรู้ด้านโดเมนเป็นจำนวนมาก
- การอัปโหลดไฟล์: GraphQL ไม่มีคุณสมบัติการอัปโหลดไฟล์ดั้งเดิม ซึ่งสามารถแก้ไขได้โดยใช้การเข้ารหัส Base64 แต่ค่าใช้จ่ายในการเข้ารหัสและถอดรหัสด้วยวิธีนี้อาจใช้เวลานานและมีราคาแพง
- การแคชเว็บ: การแคชช่วยลดการรับส่งข้อมูลบ่อยครั้งไปยังเซิร์ฟเวอร์ ซึ่งทำให้คำขอและกระบวนการตอบสนองเร็วขึ้น โดยเก็บข้อมูลที่เข้าถึงบ่อยไว้ใกล้กับเซิร์ฟเวอร์ GraphQL ไม่สนับสนุนหรือพึ่งพาวิธีการแคช HTTP ทั้งนี้ขึ้นอยู่กับกลไกการแคชของไคลเอ็นต์ Apollo หรือรีเลย์
- ไม่เหมาะสำหรับแอปพลิเคชันขนาดเล็ก: GraphQL อาจไม่ใช่สถาปัตยกรรม API ที่ดีที่สุดสำหรับการสร้างแอปพลิเคชันขนาดเล็ก หากแอปของคุณไม่ต้องการการสืบค้นที่ยืดหยุ่นกว่าที่ GraphQL เสนอให้ REST คือคำตอบ
- ปัญหาการสืบค้นที่ซับซ้อน: ความสามารถของ GraphQL ในการมอบสิ่งที่ลูกค้าต้องการอย่างแท้จริงยังสามารถนำไปสู่ปัญหาการเผยแพร่ข้อความค้นหา หากไคลเอนต์ส่งการสืบค้นข้อมูลที่ซ้อนกันมากเกินไป อาจนำไปสู่การส่งแบบสอบถามที่ไม่ถูกต้อง ซึ่งอาจใช้เวลานานมากสำหรับเซิร์ฟเวอร์ ควรใช้ REST กับปลายทางที่กำหนดเองเพื่อตอบสนองคำขอดังกล่าว
ข้อเสียของ REST
ตอนนี้ ให้เราหันความสนใจไปที่ข้อเสียบางประการของ REST:
- การเดินทางไปกลับหลายครั้ง: ปัญหาที่ใหญ่ที่สุดของ REST API คือลักษณะของปลายทางจำนวนมาก ซึ่งหมายความว่าลูกค้าจะได้รับทรัพยากรทั้งหมดสำหรับแอปพลิเคชันที่สมบูรณ์ จำเป็นต้องเดินทางไปกลับนับไม่ถ้วนเพื่อรับข้อมูล
- Over-fetching และ Under-fetching: ปัญหาของการดึงข้อมูลมากเกินไปและ under-fetching เป็นข้อเสียเปรียบที่สำคัญใน RESTful APIS อาจทำให้การตอบสนองล่าช้าเนื่องจากการดึงข้อมูลขนาดใหญ่ที่ไม่ต้องการ
- ลำดับชั้น: เนื่องจาก REST API สร้างขึ้นจากทรัพยากรที่อ้างอิง URI จึงไม่เหมาะสมสำหรับทรัพยากรที่ไม่ได้จัดระเบียบหรือเข้าถึงในลำดับชั้นอย่างง่าย
ทำไมต้องใช้ GraphQL แทน REST
ต่อไป เราจะพูดถึงสาเหตุที่คุณอาจต้องการพิจารณา GraphQL สำหรับการพัฒนา API ในอนาคตของคุณแทน RESTful API
Schema ที่พิมพ์อย่างดี
GraphQL ใช้ระบบประเภทที่แข็งแกร่งเพื่อกำหนดความสามารถของ API ใน GraphQL ภาษาข้อกำหนดสคีมา (SDL) ใช้เพื่อกำหนดพารามิเตอร์โดยรอบวิธีที่ไคลเอ็นต์เข้าถึงข้อมูลของเซิร์ฟเวอร์ API ทั้งหมดที่เปิดเผยต่อไคลเอ็นต์จะถูกเขียนลงใน SDL เพื่อแก้ปัญหาความไม่สอดคล้องของข้อมูลที่พบใน RESTful API
ไม่มีการดึงข้อมูลมากเกินไปหรือน้อยเกินไป
ปัญหาของการดึงข้อมูลมากเกินไปหรือน้อยเกินไปเป็นปัญหาที่ทราบแล้วของ RESTful API ซึ่งไคลเอ็นต์จะได้รับข้อมูลกลับมามากหรือน้อยกว่าที่ร้องขอ GraphQL แก้ปัญหานี้ด้วยการจัดเตรียมสื่อสำหรับลูกค้าเพื่อระบุข้อมูลที่จำเป็น จากนั้นส่งคืนเฉพาะข้อมูลเฉพาะนั้น เท่านั้น
ปลายทางหลายจุด
ปัญหาที่ใหญ่ที่สุดอย่างหนึ่งของ RESTful API คือการมีปลายทางมากเกินไปในการเข้าถึงข้อมูล
สมมติว่าคุณต้องการเข้าถึงผู้ใช้รายใดรายหนึ่งผ่านหมายเลข ID ของพวกเขา คุณจะได้รับการนำเสนอด้วยปลายทางเช่น /users/1
แต่ถ้าคุณต้องการเข้าถึงรูปภาพของผู้ใช้รายนั้น คุณจะต้องส่งคำขอไปยังปลายทางอื่น เช่น /users/1/photos
ใน GraphQL คุณมีจุดสิ้นสุดเพียงจุดเดียว และคุณไม่จำเป็นต้องส่งคำขอหลายรายการเพื่อเรียกข้อมูลที่แตกต่างกันเกี่ยวกับผู้ใช้
GraphQL กับ REST Showdown
สุดท้ายนี้ เราจะมาสำรวจความแตกต่างที่สำคัญระหว่าง GraphQL และ RESTful API หลังจากนั้น เราจะพูดถึงคุณสมบัติบางอย่างของการออกแบบ API ที่ดีและเปรียบเทียบว่าเทคโนโลยีแต่ละอย่างจัดการกับมันอย่างไร
ประสิทธิภาพ
ไม่ต้องสงสัยเลยว่า GraphQL ทำงานได้เร็วกว่า RESTful API เนื่องจากความสามารถในการจัดหาจุดปลายเดียวในการเข้าถึงทรัพยากรทั้งหมดของคุณ RESTful API ใช้ปลายทางหลายจุด ซึ่งอาจส่งผลให้เกิดเวลาแฝงของเครือข่าย
ความซับซ้อนของแบบสอบถาม
เนื่องจากปลายทางไม่ได้แยกออกเป็นหลายจุดสิ้นสุด การสืบค้นของ GraphQL อาจซับซ้อนขึ้นเรื่อยๆ เมื่อเวลาผ่านไป ในทางกลับกัน RESTful API endpoints จะถูกแยกออก ซึ่งจำกัด RESTful APIs ไว้สำหรับการสืบค้นทั่วไป
ความนิยมและการสนับสนุนจากชุมชน
GraphQL เป็นรูปแบบสถาปัตยกรรม API และภาษาการสืบค้นที่กำลังเติบโต แม้ว่าจะยังอายุน้อย แต่อัตราการนำไปใช้และแหล่งทรัพยากรก็เติบโตอย่างรวดเร็ว และมีทรัพยากรมากมายสำหรับผู้ที่สนใจเรียนรู้ด้วยตนเอง
ในทางกลับกัน REST ได้รับการสนับสนุนจากชุมชนมากมายและยังคงถูกใช้โดยบริษัททุกประเภท ตั้งแต่การสร้างไมโครเซอร์วิสขนาดเล็กไปจนถึงผู้ที่สร้างแอปโซเชียลที่ซับซ้อนและอื่นๆ
ปัจจุบันการแข่งขันความนิยมระหว่าง GraphQL กับ REST เป็นแบบเสมอกัน เทคโนโลยีทั้งสองยังคงใช้กันอย่างแพร่หลายและได้รับการสนับสนุนอย่างดีจากชุมชนการพัฒนา
เส้นโค้งการเรียนรู้
เส้นโค้งการเรียนรู้สำหรับ GraphQL นั้นสูงชัน ต้องใช้ความรู้โดเมนที่ดีเกี่ยวกับการพัฒนา API และวิศวกรรมซอฟต์แวร์ทั่วไป ผู้เริ่มต้นที่สมบูรณ์จะมีช่วงเวลาที่ยากลำบากในการทำความเข้าใจ GraphQL ให้ดีพอที่จะสร้างแอปพลิเคชันที่ซับซ้อนได้
ในทางกลับกัน REST นั้นง่ายต่อการเริ่มต้นและต้องการความรู้เกี่ยวกับโดเมนน้อยกว่าตั้งแต่แรก RESTful API ถูกรวมเข้ากับภาษาโปรแกรมหลักๆ ส่วนใหญ่และเฟรมเวิร์กยอดนิยม ซึ่งทำให้การเรียนรู้เป็นเรื่องง่าย
สรุป
GraphQL เป็นเทคโนโลยีใหม่ที่ติดตามรูปแบบสถาปัตยกรรม RESTful API เช่นเดียวกับ REST ที่ได้รับการแนะนำเพื่อแก้ปัญหาด้วยรูปแบบ SOAP API
GraphQL ให้การตอบสนองที่เร็วขึ้น จุดสิ้นสุด API เดียวสำหรับการสืบค้นทั้งหมดของคุณ และสคีมาที่เข้มงวดสำหรับการเข้าถึงข้อมูลที่สอดคล้องกัน เหตุผลเหล่านี้คือสิ่งที่ทำให้บริษัทมูลค่าหลายพันล้านดอลลาร์เริ่มเปลี่ยนไปใช้ GraphQL แม้จะอยู่ในช่วงเริ่มต้นก็ตาม อย่างไรก็ตาม แม้จะมีข้อจำกัด REST บรรพบุรุษของ GraphQL ยังคงรักษาสถานะที่แข็งแกร่งไว้ได้บนเวที
ในคู่มือนี้ เราได้สำรวจทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับ GraphQL และ RESTful API รวมถึงประโยชน์และข้อเสียของแต่ละเทคโนโลยี เพื่อช่วยให้คุณตัดสินใจได้อย่างมั่นใจว่าต้องการแบบไหน เรายังได้พูดคุยถึงปัญหาที่ทราบเกี่ยวกับ RESTful API เช่น การดึงข้อมูลมากเกินไป การดึงข้อมูลน้อยเกินไป และปลายทางหลายจุด และวิธีที่ GraphQL พยายามแก้ปัญหาเหล่านั้นและเพิ่มประสิทธิภาพแอปของคุณ
ตอนนี้คุณมีข้อมูลเชิงลึกเพียงพอที่จะเลือกว่า GraphQL กับ REST เหมาะสมกับโปรเจ็กต์ถัดไปของคุณหรือไม่ แจ้งให้เราทราบในส่วนความคิดเห็นว่าคุณจะต้องสร้างอะไรร่วมกับผู้ชนะที่คุณเลือก!