قادة الفكر
GraphQL – تغيير وتحسين طريقة تواصل التطبيقات

لن يمر وقت طويل قبل أن يشتري الجيل القادم العملات المشفرة ويتحقق من رصيد استثماراته في صناديق الاستثمار داخل ردهة Fortnite بين المباريات. وستتيح ذلك تطورات تقنية عديدة.
التطور الذي نناقشه اليوم هو طريقة نقل البيانات (قراءتها وتحديثها وإضافتها وحذفها) بين التطبيقات والشركات التي تمتلكها. فواجهات برمجة التطبيقات (API) هي البنية التي تحدد هذا التواصل بالبيانات، ومع تطور هذه المعايير أصبحت متطلبات المعالجة وتخزين البيانات أقل عبئًا.
يتصدر GraphQL الحلول من حيث انخفاض استهلاك الموارد. وهو لغة مفتوحة المصدر للاستعلام عن البيانات ومعالجتها. وتقوم منظومته على مواصفاته ومجموعة الأدوات التي أُنشئت حوله.
وهو ليس جديدًا؛ فالوقت يمضي سريعًا. طورته Facebook عام 2012، واستخدمته داخليًا فقط لتطوير تطبيقات الأجهزة المحمولة. وفي عام 2015 أُتيح مصدره، وتتولى اليوم مؤسسة GraphQL (https://graphql.org/foundation/) رعايته والإشراف على تطويره اللاحق.
فلماذا أكتب عنه الآن؟ تمر خارطة الطريق المعتادة لتبني تقنية بالمراحل التالية: 1) الهواة والمشاريع الشخصية، 2) التنفيذ بلغات برمجة متعددة، 3) التنفيذ في الشركات الناشئة والصغيرة، 4) الشركات المتوسطة والاستخدام في تطوير المنتجات، 5) الشركات الكبرى وعمالقة التقنية.
وصل GraphQL إلى المرحلة الخامسة. وتستخدمه حاليًا GitHub وPinterest وShopify وMicrosoft (MSFT )، على سبيل المثال لا الحصر، وأحدث المنضمين إلى ذلك، اعتبارًا من مارس 2022، Salesforce (CRM ).
أثناء بحثي عن طريقة لجلب البيانات من Salesforce بكفاءة أكبر، صادفت وثائق GraphQL لديهم، فبدأت القراءة واستكشاف طرق تنفيذه.
كيف يختلف عن واجهة REST API التقليدية؟
- من أبرز المزايا أن GraphQL يتيح لك الاستعلام والحصول على البيانات المحددة وحدها. فإذا أردت حقلين فقط يتعلقان بحالة دعم معينة لأحد العملاء، فهذا ما ستحصل عليه. أما واجهة REST API التقليدية فستعيد جميع الحقول المرتبطة بالحالة، وقد يتجاوز عددها مئة حقل. وعندئذ عليك التعامل مع كل تلك البيانات التي لم تكن تريدها أصلًا. ويُسمى ذلك الجلب المفرط للبيانات (كما أن الجلب غير الكافي يمثل مشكلة أيضًا).
- يجعل ما سبق GraphQL أسرع من أساليب API الأخرى عند إعادة البيانات.
- GraphQL لغة ذات نظام أنواع قوي، مما يعني، من بين أمور أخرى، اكتشاف أخطاء الشيفرة قبل تشغيل البرنامج بدلًا من اكتشافها أثناء تشغيله.
- بُنيت حول GraphQL مجموعة ممتازة من الأدوات جعلته ملائمًا جدًا للمطورين.
- لدى GraphQL نقطة نهاية واحدة، بخلاف REST API التي لديها نقاط نهاية متعددة. ويعني ذلك إمكان جلب جميع بياناتك بطلب واحد.
وجهان للعملة: طالب البيانات (العميل) ومزودها (مضيف GraphQL)
تناولت GraphQL حتى الآن من منظور «طلب» البيانات، حيث تنشئ شركة مثل Salesforce أو Microsoft واجهة GraphQL API يمكنك استخدامها للاستعلام عن البيانات ومعالجتها (قراءتها وتحديثها وإضافتها).
على سبيل المثال، إذا أردنا إدراج بيانات حالات دعم العملاء من Salesforce في بوابة للعملاء، فإن الطريقة الأكثر كفاءة هي طلب البيانات التي نحتاجها تحديدًا باستعلام GraphQL يرسله الموقع من البوابة إلى خادم GraphQL لدى Salesforce. ستحصل على البيانات التي تريدها بالضبط، دون جلب بيانات أقل أو أكثر من المطلوب، وبالتالي لن تكون هناك حاجة إلى معالجة أو تخزين إضافيين.
الوجه الآخر للعملة هو المؤسسة التي تنشئ بنية GraphQL بحيث يتاح لعملائك أسلوب فعال للوصول إلى البيانات التي يريدونها.
عند بناء واجهة GraphQL API، تنشئ المؤسسة نموذجًا يدمج جميع أنظمتها في نموذج واحد. فهو يوحد هذه الأنظمة، ويزيل بعد اكتمال العمل تعقيد النظام الأساسي. وبعد إتمام العمل، يصبح الاستعلام عن البيانات سلسًا عبر الواجهة.
عند مقارنة التطبيقات أو المزودين، أنظر إلى الوظائف التي يقدمونها لي لاسترجاع بياناتي منهم. لا أريد أن أضطر إلى مراسلتهم بالبريد الإلكتروني أو الاعتماد على تقارير جامدة محددة مسبقًا. أريد أن أتمكن من الاتصال مباشرة ببياناتي والاستعلام عنها بمرونة وفي الوقت المناسب. وإذا انحصر الاختيار في تطبيقين أو مزودين متقاربين في معايير المقارنة الأخرى، وكان أحدهما يقدم REST API أو GraphQL API، فسأختار بالتأكيد من يقدم الواجهة.












