ต้นขั้ว Graphql – การเปลี่ยนแปลงและปรับปรุงวิธีการสื่อสารของแอปพลิเคชัน - Unite.AI
เชื่อมต่อกับเรา

ผู้นำทางความคิด

Graphql – การเปลี่ยนแปลงและปรับปรุงวิธีการสื่อสารของแอปพลิเคชัน

mm

การตีพิมพ์

 on

ไม่นานก่อนที่คนรุ่นต่อไปจะซื้อ crypto และตรวจสอบยอดหน่วยลงทุนของพวกเขาใน ล็อบบี้ Fortnite ในระหว่างเกม สิ่งนี้จะเปิดใช้งานผ่านความก้าวหน้าทางเทคโนโลยีมากมาย

สิ่งที่เรากำลังพูดถึงในวันนี้คือวิธีการถ่ายโอนข้อมูล (อ่าน อัปเดต เพิ่ม/ลบ) ระหว่างแอปพลิเคชันและบริษัทที่เป็นเจ้าของ Application Programming Interfaces (API) เป็นสถาปัตยกรรมที่กำหนดการสื่อสารข้อมูลนี้ และเนื่องจากมาตรฐานเหล่านี้ได้พัฒนาขึ้น ข้อกำหนดในการประมวลผลและข้อกำหนดในการจัดเก็บข้อมูลจึงมีความยุ่งยากน้อยลง

ผู้นำในชุดในแง่ของการใช้ทรัพยากร 'เบา' คือ GraphQL ซึ่งเป็นการสืบค้นข้อมูลแบบโอเพ่นซอร์สและภาษาการจัดการ รากฐานของระบบนิเวศคือข้อมูลจำเพาะและชุดเครื่องมือที่สร้างขึ้นรอบๆ

ไม่ใช่เรื่องใหม่ เวลาผ่านไปอย่างรวดเร็ว Facebook พัฒนาขึ้นในปี 2012 และใช้เป็นการภายในสำหรับการพัฒนาแอปพลิเคชันบนมือถือเท่านั้น ในปี 2015 เป็น 'โอเพนซอร์ส' และปัจจุบันได้รับการดูแลโดย GraphQL Foundation (https://graphql.org/foundation/) ซึ่งดูแลการพัฒนาต่อไป

เหตุใดฉันจึงเขียนถึงตอนนี้ แผนงานทั่วไปในการนำเทคโนโลยีไปใช้จะเป็นไปตามแนวทางต่อไปนี้ 1) ผู้ที่ชื่นชอบงานอดิเรก/โครงการส่วนตัว 2) การนำไปใช้งานในหลายภาษา 3) การนำไปใช้งานกับบริษัทสตาร์ทอัพและบริษัทขนาดเล็ก 4) บริษัทขนาดกลางและนำไปใช้ในการพัฒนาผลิตภัณฑ์ 5 ) บริษัทขนาดใหญ่และยักษ์ใหญ่ด้านเทคโนโลยี

GraphQL มาถึงระดับ 5 แล้ว ปัจจุบัน GitHub, Pinterest, Shopify, Microsoft ใช้ชื่อนี้เพียงไม่กี่ชื่อ และล่าสุด ณ เดือนมีนาคม 2022 Salesforce

ในการมองหาวิธีดึงข้อมูลอย่างมีประสิทธิภาพมากขึ้นจาก Salesforce ฉันพบเอกสาร GraphQL ของพวกเขาและเริ่มอ่านและมองหาวิธีการนำไปใช้

แตกต่างจาก REST API ดั้งเดิมอย่างไร

  • ข้อได้เปรียบที่สำคัญประการหนึ่งคือ GraphQL ช่วยให้คุณสามารถสืบค้นและส่งคืนเฉพาะข้อมูลนั้นเท่านั้น หากคุณต้องการเพียงสองฟิลด์ที่เกี่ยวข้องกับเหตุการณ์ไคลเอ็นต์ที่เฉพาะเจาะจง นั่นคือสิ่งที่คุณได้รับ REST API แบบดั้งเดิมจะส่งคืนฟิลด์ทั้งหมดที่เกี่ยวข้องกับเหตุการณ์ให้คุณ นั่นอาจเป็นมากกว่า 100 ฟิลด์ ตอนนี้คุณต้องทำบางอย่างกับข้อมูลทั้งหมดที่คุณไม่ต้องการให้เริ่มด้วย สิ่งนี้เรียกว่า ข้อมูลมากกว่าการดึงข้อมูล (ภายใต้การดึงยังเป็นปัญหา)
  • ข้อมูลข้างต้นทำให้ GraphQL เร็วกว่าวิธีการ API อื่นๆ เมื่อส่งคืนข้อมูล
  • GraphQL เป็นภาษาที่มีการพิมพ์สูงซึ่งเหนือสิ่งอื่นใดหมายถึงข้อผิดพลาดของโค้ดจะถูกเลือกก่อนที่โปรแกรมจะทำงาน ไม่ใช่ในระหว่างนั้น
  • มีการสร้างชุดเครื่องมือที่ยอดเยี่ยมโดยใช้ GraphQL ซึ่งทำให้นักพัฒนาเป็นมิตรมาก
  • GraphQL มีจุดสิ้นสุดจุดเดียวซึ่งตรงข้ามกับ REST API ซึ่งมีจุดสิ้นสุดหลายจุด ซึ่งหมายความว่าสามารถดึงข้อมูลทั้งหมดของคุณได้ในคำขอเดียว

เหรียญสองด้าน: ผู้ร้องขอ (ลูกค้า) และผู้ให้บริการ (โฮสต์ GraphQL)

ฉันได้ดู GraphQL จากมุมมองของข้อมูล "คำขอ" ที่บริษัท เช่น Salesforce หรือ Microsoft ได้ตั้งค่า GraphQL API ที่คุณสามารถใช้เพื่อสอบถามและจัดการข้อมูล (อ่าน อัปเดต เพิ่ม)

ตัวอย่างเช่น หากเราต้องการรวมข้อมูลจากเหตุการณ์ที่เกี่ยวข้องกับไคลเอ็นต์ของ Salesforce ลงในพอร์ทัลไคลเอนต์ วิธีที่มีประสิทธิภาพที่สุดในการดำเนินการนี้คือการขอข้อมูลที่แน่นอนซึ่งเราต้องการผ่านการสืบค้น GraphQL จากพอร์ทัลไปยังเซิร์ฟเวอร์ Salesforce GraphQL คุณจะได้รับข้อมูลที่คุณต้องการอย่างแท้จริง ไม่มีการดึงข้อมูลมากหรือน้อยเกินไป และด้วยเหตุนี้จึงไม่จำเป็นต้องประมวลผลหรือจัดเก็บข้อมูลเพิ่มเติม

อีกด้านหนึ่งของเหรียญคือองค์กรที่ตั้งค่าสถาปัตยกรรม GraphQL เพื่อให้ลูกค้าของคุณสามารถมีวิธีการที่มีประสิทธิภาพในการเข้าถึงข้อมูลที่พวกเขาต้องการเช่นกัน

ในการสร้าง GraphQL API องค์กรกำลังสร้างโมเดลที่รวมระบบทั้งหมดไว้ในโมเดลเดียว โดยจะรวมระบบเหล่านี้เป็นหนึ่งเดียว และเมื่อทำเสร็จแล้วจะขจัดความซับซ้อนของระบบพื้นฐาน เมื่อทำงานเสร็จแล้ว การสืบค้นข้อมูลจะราบรื่นผ่าน API

เมื่อเปรียบเทียบแอปพลิเคชันหรือผู้ให้บริการ ฉันจะดูว่าพวกเขาเสนอฟังก์ชันใดให้ฉันได้รับข้อมูลคืนจากพวกเขา ฉันไม่ต้องการส่งอีเมลถึงพวกเขาหรือพึ่งพารายงานที่กำหนดไว้ล่วงหน้าอย่างตายตัว ฉันต้องการที่จะสามารถ "เสียบเข้ากับ" ข้อมูลของฉันในการสืบค้นได้อย่างยืดหยุ่นและตรงต่อเวลา หากพูดถึงแอปพลิเคชัน/ผู้ให้บริการสองรายการ และมีความคล้ายคลึงกันในจุดเปรียบเทียบอื่นๆ และแอปพลิเคชัน/ผู้ให้บริการหนึ่งรายเสนอ REST API หรือ GraphQL API ฉันจะเลือกแอปพลิเคชันที่มี API อย่างแน่นอนที่สุด

Marcus Loveland นักพัฒนานักวิเคราะห์ RP PA ที่ บริการกองทุนเมตแลนด์, เขียนเพื่อ 'กลุ่มคนไอที' มองไปข้างหน้าเกี่ยวกับอินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) และสร้างเสริมในสถาปัตยกรรม GraphQL API