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

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

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

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

สิ่งที่เรากำลังพูดถึงในวันนี้คือวิธีการถ่ายโอนข้อมูล (อ่าน อัปเดต เพิ่ม/ลบ) ระหว่างแอปพลิเคชันและบริษัทที่เป็นเจ้าของ แอปพลิเคชันโปรแกรมมิ่งอินเทอร์เฟซ (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 ของพวกเขาและเริ่มอ่านและดูวิธีการใช้งาน

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

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

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

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

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

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

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

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

Marcus Loveland, RP PA Analyst Developer at Maitland Fund Services, เขียนสำหรับ 'IT crowd' โดยมองไปข้างหน้าเกี่ยวกับ application programming interfaces (API) และมุ่งเน้นไปที่ GraphQL API architecture