GraphQL مع دروبال 8: دليل كل ما تحتاج إلى معرفته (مع أمثلة!)
نشرت: 2019-12-17تتحدث GraphQL إلى Drupal في HTTP والمخرجات أصبحت أكثر تنظيماً من أي وقت مضى!
اليوم ، تبدأ تجارب العملاء الرائعة بمحتوى رائع. المحتوى الذي يتم توفيره في كل مكان. مع مبادرة دروبال 8 API الأولى ، يمكن بسهولة استخدام المحتوى الذي يديره دروبال بواسطة أنظمة أخرى عبر HTTP. يوفر REST (نقل الحالة التمثيلية) معيار تصميم لواجهات برمجة التطبيقات. ومع ذلك ، مع تزايد تعقيد وتحدي تطبيقات العميل ، يحتاج المطورون إلى حل أكثر حداثة وفعالية.

ولدت GraphQL نتيجة الطلب على تفاعل أكثر مرونة وقوة بين العميل والخادم. إنها لغة استعلام معقدة وآلة تنفيذ. في عام 2012 ، أنشأ Facebook المواصفات الخاصة به ، والتي تصف إمكانياتها ومتطلبات نماذج البيانات للتطبيقات بدون رأس.
ما هي GraphQL؟
GraphQL هي معيار تكيفي لواجهات برمجة التطبيقات وتوفر وقت تشغيل لتلبية هذه الاستفسارات. تقدم GraphQL تفاصيل كاملة ومعقولة عن المعلومات الموجودة في واجهة برمجة التطبيقات الخاصة بك. تم تطويره مع أيديولوجية "اسأل عما تحتاجه واحصل عليه بالضبط". إنه يمكّن العميل من جلب الاستجابة الدقيقة التي يحتاجها من واجهة برمجة التطبيقات ، ولا شيء أكثر - ولا أقل.
مزايا GraphQL
قليل من المزايا العديدة لاستخدام GraphQL لدروبال -
- تطوير الواجهة الأمامية بشكل أسرع
قم بالتأكيد على التطبيقات بسرعة دون انتظار نقاط نهاية خلفية جديدة. قم بتحسين جلب البيانات وصيانة التعليمات البرمجية من خلال الحصول على البيانات بالشكل الذي تريده. - اطلب ما تحتاجه واحصل على ذلك بالضبط
يوفر الاستجابة الدقيقة التي طلبها العميل. إنها ترجع دائمًا نتيجة يمكن التنبؤ بها. التطبيقات التي تستخدم GraphQL مستقرة أيضًا لأن التطبيق يتحكم في البيانات التي يحصل عليها ، وليس الخادم. - استخدم البيانات الموجودة لديك
يمكن استخدام GraphQL مع أي بنية تحتية موجودة مثل REST أو SOAP أو قاعدة بيانات موجودة أو أي شيء آخر. يتيح لك الاستعلام عن جميع البيانات في طلب واحد ويوفر لك استجابة نظيفة يمكن التنبؤ بها. - عدد أقل من البايت ورحلات الذهاب والإياب
باستخدام GraphQL ، يمكن جلب جميع البيانات المطلوبة باستخدام استعلام واحد. إنه يجعل
تطبيق أسرع.

GraphQL مع دروبال 8
REST مقابل JSON: API مقابل GraphQL
إذا قارنا هذه الثلاثة وفقًا لكفاءة الطلب ، فإن JSON: API و GraphQL ممتازان. لأنه في طلب واحد JSON: يمكن لواجهة برمجة التطبيقات و GraphQl تقديم جميع الاستجابات المطلوبة. في حالة JSON: API ، يتعين علينا أحيانًا تصميم الاستجابة ولكن عندما يتعلق الأمر بـ GraphQL ، فإنها تخدم فقط ما نحتاجه. REST أبطأ مقارنة بهذه ، لأن هناك حاجة إلى طلبات متعددة لتلبية الاحتياجات المشتركة.
من حيث البساطة التشغيلية والتنفيذ ، فإن REST هو الأسهل ، فهو موجود منذ فترة طويلة الآن. JSON: تعمل API أيضًا خارج الصندوق مع CDN والوكلاء العكسيين. بالنسبة إلى GraphQL ، هناك حاجة إلى بنية تحتية إضافية ومكتبات العملاء ضرورية لتنفيذها.
من الأسهل استخدام ذاكرة التخزين المؤقت للويب في REST و JSON: API مقارنة بـ GraphQL. في GraphQL ، هناك نقطة نهاية واحدة فقط (في معظم الأحيان نقطة نهاية HTTP POST) حيث يتم إرسال جميع الاستعلامات. نظرًا لأن كل استعلام يمكن أن يكون مختلفًا ، فمن الصعب استخدام هذا النوع من التخزين المؤقت.
تدعم مواصفات Drupal GraphQL العمليات المجمّعة / الدفعية تلقائيًا للطفرات التي قمت بتنفيذها بالفعل ، بينما لا تدعم مواصفات JSON: API. يمكن أن تكون القدرة على إجراء عمليات كتابة الدُفعات مهمة.
تثبيت GraphQL لدروبال 8
تدعم وحدة Drupal GraphQL جميع مواصفات GraphQL ويمكن استخدامها لإنشاء مخططات GraphQL وكشفها. يوفر أحدث إصدار ألفا لوحدة دروبال 8 في الإصدار 8.x-4 إمكانية لوحدات دروبال لتوسيع مخطط قاعدة البيانات باستخدام ملحق.
هنا حيث يمكنك تثبيت وحدة Drupal GraphQL من - https://www.drupal.org/project/graphql
يمكنك التثبيت باستخدام أمر composer.
يتطلب الملحن "drupal / graphql: ^ 3.0"
سيوفر لك وحدتين GraphQL Core و GraphQL . تحتاج إلى تمكين كلا الوحدتين. يمكنك تمكينه باستخدام drush على سبيل المثال
drush en Graphql drush en graphql_core
استعلامات مع Drupal GraphQL
توفر وحدة Drupal GraphQL أداة تسمى GraphiQL . إنها أداة قوية ولها واجهة مستخدم تفاعلية بوظائف مثل الإكمال التلقائي. باستخدام هذه الأداة ، يمكنك تشغيل الاستعلامات والحصول على المخرجات. انتقل إلى - “ / graphql / explorer ” للواجهة.
ستحصل على واجهة مستخدم تبدو كالتالي -

واجهة مستخدم GraphiQL
على اللوحة اليسرى لواجهة المستخدم هذه ، يمكنك كتابة استعلام وعلى الجانب الأيمن ، سترى النتائج كمخرجات بتنسيق JSON. سيؤدي النقر فوق Docs في الزاوية اليمنى العليا إلى الحصول على توثيق للاستعلامات المتاحة. يمكن استخدام قسم متغير الاستعلام في اللوحة اليسرى السفلية لتمرير متغيرات الاستعلام.

أمثلة
1. الاستعلام عن العقد

Drupal GraphQL - الاستعلام عن العقد
2. الاستعلام عن التصنيفات

Drupal GraphQL - الاستعلام عن التصنيفات
3. طرق الاستعلام

Drupal GraphQL - الاستعلام عن المسارات
4. أجزاء الاستعلام

دروبال GraphQL - أجزاء الاستعلام
5. الفلاتر

دروبال GraphQL - عوامل التصفية
6. مرشحات بالتزامن

Drupal GraphQL - مرشحات مع اقتران
المشغلون الآخرون المتاحون هم:
- مساو
- ليس متساوي
- اصغر من
- SMALLER_THAN_OR_EQUAL
- أكثر من
- أكبر من أو يساوي
- في
- ليس في
- مثل
- لا يشبه
- ما بين
- ليس بينهما
- باطل
- هو ليس لاشيء
يمكن أن تحتوي أدوات الاقتران على قيمتين
- و
- أو
يمكنك أيضًا استخدام المجموعات لكتابة استعلامات أكثر تعقيدًا.
7- متغيرات GraphQL

دروبال GraphQL - المتغيرات
الطفرات
في GraphQL ، الطفرة هي المصطلحات المستخدمة متى أردت إضافة أو تعديل أو حذف البيانات المخزنة على الخادم. في هذه الحالة دروبال. لسوء الحظ ، لا تتضمن الوحدة طريقة لإجراء طفرات شائعة خارج الصندوق بسبب بعض المتطلبات الفنية لـ GraphQL.
يمكن العثور على رمز مثال للإنشاء والحذف والتحديث وتحميل الملفات هنا: https://github.com/drupal-graphql/graphql-examples
مثال طفرة:

Drupal GraphQL - مثال على الطفرة
دروبال GraphQL مع Twig
يمكن أن يؤدي استخدام Drupal GraphQL مع Twig إلى تحسين أداء موقع الويب الخاص بك بشكل ملحوظ. وإليك الطريقة - عندما تقوم بحقن البيانات في قالب Twig ، يمكنك جلب جميع البيانات المطلوبة باستخدام استدعاء واحد لواجهة برمجة التطبيقات. علاوة على ذلك ، نظرًا لأن العميل يتحكم في البيانات التي يحصل عليها وليس الخادم ، فإنه يجعل العملية أسرع.
لاستخدام Drupal GraphQL مع Twig ، نحتاج إلى وحدة GraphQL Twig. لتنزيله وتمكينه ، استخدم الأوامر التالية:
يتطلب الملحن "drupal / graphql_twig: ^ 1.0" drush en الرسم البياني ql_twig
وبعد ذلك يمكنك استخدام استعلام GraphQL في موقع الويب الخاص بك على سبيل المثال
{#graphql
استفسار {
admin: userById (id: "1") {
uid
اسم
}
المستخدم: currentUserContext {
uid
}
}
#}ستحصل على بيانات الاستجابة في متغير GraphQL.
