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

لن يكون طويلا قبل أن تشتري الجيل التالي العملات المشفرة ويتحقق من رصيد الثقة في غرفة انتظار Fortnite بين الألعاب. سيتم تمكين ذلك من خلال العديد من التقدمات التكنولوجية.
التي نحن نناقشها اليوم هي طريقة نقل البيانات (قراءة، تحديث، إضافة / إزالة) بين التطبيقات والشركات التي تملكها. واجهات برمجة التطبيقات (API) هي الهيكل الذي يحدد هذا الاتصال بالبيانات، وعندما تم تطوير هذه المعايير، أصبحت متطلبات المعالجة وتخزين البيانات أقل صعوبة.
الزعيم في الحزمة من حيث “استخدام الموارد الخفيف” هو Graphql، وهو لغة استعلام ومانيپуля션 البيانات مفتوحة المصدر. أساس نظامها هي مواصفاتها ومجموعة من الأدوات التي تم إنشاؤها حولها.
ليس جديدًا – الوقت يمر بسرعة. تم تطويره بواسطة Facebook في عام 2012 واستخدامه فقط داخليًا لتطوير التطبيقات المحمولة. في عام 2015 تم “إطلاقه مفتوح المصدر” واليوم يتم رعايته بواسطة مؤسسة Graphql (https://graphql.org/foundation/) التي تشرف على تطويره بشكل أكبر.
لذلك لماذا أكتب عنه الآن؟ خريطة طريق نموذجية إلى تبني تكنولوجي ستتبع استقبالات التالية 1) هواة / مشاريع شخصية، 2) التنفيذ عبر لغات متعددة، 3) التنفيذ عبر الشركات الناشئة والشركات الصغيرة، 4) الشركات متوسطة الحجم وتم استخدامها في تطوير المنتجات، 5) الشركات الكبيرة والعملاقة التكنولوجية.
Graphql قد وصل إلى المستوى 5. يتم استخدامه حاليًا بواسطة GitHub و Pinterest و Shopify و Microsoft على سبيل المثال لا الحصر وأخيرًا، في مارس 2022، Salesforce.
في البحث عن طريقة لاسترجاع البيانات بشكل أكثر كفاءة من Salesforce، وجدت توثيق Graphql الخاص بهم وبدأت في القراءة والنظر في طرق تنفيذه.
كيف يختلف عن واجهة برمجة تطبيقات REST التقليدية؟
- أحد المزايا الرئيسية هو أنه يمكنك استعلام البيانات والحصول فقط على البيانات المحددة. إذا كنت تريد فقط حقلين متعلقين bằng حادثة عميل معينة، فهذا ما تحصل عليه. سوف ترجع واجهة برمجة تطبيقات REST التقليدية جميع الحقول المرتبطة بالحادثة. قد يكون ذلك 100+ حقل. الآن عليك أن تفعل شيئًا مع جميع البيانات التي لم تكن تريدها في البداية. يُطلق على هذا استرجاع البيانات الزائد (كما أن استرجاع البيانات الناقص هو مشكلة).
- ما سبق يجعل Graphql أسرع من منهجية واجهة برمجة التطبيقات الأخرى عند إرجاع البيانات.
- Graphql هو لغة قوية النوع مما يعني، من بين أشياء أخرى، أن أخطاء الشفرة يتم اكتشافها قبل تشغيل البرنامج وليس أثناءه.
- تم بناء مجموعة رائعة من الأدوات حول Graphql مما جعله وديًا للغاية للمطور.
- Graphql لديه نقطة نهاية واحدة على عكس واجهة برمجة تطبيقات REST التي لديها نقاط نهاية متعددة. هذا يعني أن جميع بياناتك يمكن استرجاعها في طلب واحد.
وجهان من العملة: الطرف المطلوب (العميل) والطرف المزود (مضيف Graphql)
لقد نظررت إلى Graphql حتى الآن من منظور طلب البيانات. حيث تقوم شركة مثل Salesforce أو Microsoft بتعيين واجهة برمجة تطبيقات Graphql التي يمكنك استخدامها لاستعلام البيانات ومانيپولेशनها (قراءة، تحديث، إضافة).
كما هو الحال، إذا كنا نريد تضمين بيانات من Salesforce المتعلقة بحوادث العملاء في بوابة عميل، فإن الطريقة الأكثر كفاءة لفعل ذلك ستكون طلب البيانات المحددة التي نبحث عنها من خلال استعلام Graphql من البوابة إلى خادم Graphql من Salesforce. سوف تحصل على البيانات المحددة التي تريدها، بدون استرجاع زائد أو ناقص، ونتيجة لذلك لن يكون هناك معالجة أو تخزين بيانات إضافي مطلوب.
الوجه الآخر للعملة هو المنظمة التي تقوم بتعيين هيكل Graphql بحيث يمكن للعملاء الحصول على طريقة كفاءة للوصول إلى البيانات التي يرغبون فيها.
عند بناء واجهة برمجة تطبيقات Graphql، تقوم المنظمة بإنشاء نموذج يدمج جميع أنظمتها في نموذج واحد. إنه يوحد هذه الأنظمة ومرة واحدة يتم إزالة تعقيد النظام الأساسي. بمجرد الانتهاء من العمل، يصبح استعلام البيانات سلسًا من خلال واجهة برمجة التطبيقات.
عندما أقارن بين التطبيقات أو المزودين، أنظر إلى الوظائف التي يقدمونها لي لاسترجاع بياناتي منهم. لا أريد أن أرسل لهم بريدًا إلكترونيًا أو أن أعتمد على تقارير محددة مسبقًا. أريد أن أتمكن من “الارتباط” ببياناتي وطلبها بطريقة مرنة وفي الوقت المناسب. إذا كان الأمر يعود إلى تطبيقين / مزودين متطابقين في نقاط المقارنة الأخرى، وواحد منهم يقدم واجهة برمجة تطبيقات REST أو واجهة برمجة تطبيقات Graphql، فسوف أختار بالتأكيد الذي يتمتع بواجهة برمجة التطبيقات.












