فصل دروبال - ما الذي يجب مراعاته أثناء استخدام JSON: API؟

نشرت: 2018-09-12

"الميزة الأكثر إقناعًا لـ دروبال API الأولى ليست الطريقة التي تتجاهل بها ميزات عرض دروبال ، إنها الطريقة التي تتيح إمكانيات نظام إدارة المحتوى لتشغيل تطبيقات وأجهزة متعددة." - Jason Enter ، مدير الخدمات الفنية ، Acquia.

لم تعد العلاقة بين المحتوى والشفرة صحية بعد الآن. لم تتم إزالة طبقة العرض التقديمي التي تواجه المستهلك من طبقة محرر المحتوى ، كما كانت من قبل ، ويرجع ذلك أساسًا إلى التجارب التفاعلية الجديدة التي يتم توفيرها للمستهلكين من خلال التطبيقات.

تسمح الأطر ولغات البرمجة الحديثة بالمرونة في تشكيل حزمة إدارة المحتوى الخاصة بك. وبالتالي ، أصبح فصل المحتوى عن الكود ممارسة شائعة في السنوات الأخيرة ، وكان دروبال من أوائل المتبنين لها. دعنا نتعلم المزيد عن هندسة فك الارتباط بين دروبال ودروبال 8.

ما هو فصل دروبال؟

حسنًا ، يبدو صوت دروبال المنفصل "رائعًا" ، أليس كذلك؟ يبدو أن الجميع يتحدث عن ذلك ، لذلك يجب أن يكون حلاً أفضل وأسهل ، أليس كذلك؟ حسنا ربما. تقدم هذه الإستراتيجية ، المعروفة أيضًا باسم "drupal بدون رأس" ، مجموعة واسعة من المزايا ، لاستغلال دروبال فقط كنظام إدارة محتوى بدون طبقة عرض تقديمي. على سبيل المثال ، لا يوجد سوى المحتوى وواجهة المستخدم الإدارية ، بدون السمات العامة والقوالب الأخرى ، مما يعرض واجهة برمجة التطبيقات للتطبيقات الأخرى.

ولكن ربما يكون السؤال الأهم الذي يدور في ذهنك هو ، ما هي فوائد هندسة دروبال المنفصلة؟

تقوم الهندسة المعمارية بلا رأس بعمل رائع في تقليل أو التخلص تمامًا من معظم المشكلات التي تعد جزءًا من أنظمة إدارة المحتوى المتجانسة.

ترقيات مبسطة: تضمن البنية المنفصلة عدم تأثير ترقية نظام إدارة المحتوى على طبقة العرض التقديمي ، مما يمنعك من الاضطرار إلى الإعداد مرة أخرى بعد كل ترقية لنظام إدارة المحتوى.

تركيز أفضل: ميزة كبيرة للمطورين ، مع بنية منفصلة ، يحتاجون فقط إلى الاهتمام بإعداد الجزء الخاص بهم من المكدس. لا يحتاج مطورو الواجهة الخلفية إلى القلق بشأن تجميع CSS ولا يحتاج شباب الواجهة الأمامية إلى خدش رؤوسهم بشأن تثبيتات الملحن.

سهولة استكشاف الأخطاء وإصلاحها: تم تصميم الهيكل بدون رأس بطريقة تتكون فيها المنصة من أجزاء أصغر ومنفصلة بدلاً من تطبيق عملاق واحد. هذا يجعل من السهل جدًا تحديد موقع الأخطاء واستكشاف الأخطاء وإصلاحها.

أداء محسّن: مع عمل الفريقين في وقت واحد بطريقة منفصلة ، يمكن أن يحدث تطوير ميزات جديدة بسلاسة دون الاصطدام بالجدران. هذا بدوره يحسن الأداء العام للمنصة.

سهولة استكشاف الأخطاء وإصلاحها: تم تصميم الهيكل بدون رأس بطريقة تتكون فيها المنصة من أجزاء أصغر ومنفصلة بدلاً من تطبيق عملاق واحد. هذا يجعل من السهل جدًا تحديد موقع الأخطاء واستكشاف الأخطاء وإصلاحها.

JSON-API

ما مدى أهمية JSON: API لمواقع دروبال المنفصلة؟

البنى القوية وتطبيقات الويب سريعة الاستجابة وسهلة الاستخدام هي نتيجة لأطر عمل JavaScript ، التي أصبحت شائعة جدًا منذ تقديمها في أوائل عام 2010. ومع تزايد عدد الأشخاص الذين يختارون استخدام الأجهزة المحمولة للوصول إلى المحتوى الرقمي ، وبناء تطبيقات أصلية لـ موقع ويب له معنى كبير.

إدراكًا لهذه الإمكانات ، أضاف دروبال 8 الدعم لبناء واجهات برمجة تطبيقات RESTful في الصميم. ومع ذلك ، فإن هذا يأتي مع عيوبه الخاصة حيث أن خدمات RESTful من Drupal core لا توفر حلولاً قوية خارج الصندوق.

عادةً ما يواجه تنفيذ REST API التقليدي مجموعة معينة من المشكلات:

  • سيتطلب الرسم البياني الكامل للبيانات المطلوب لإنشاء طريقة العرض في المستهلك طلبات كثيرة جدًا.
  • رد فعل كبير يعيد كل مجالات وعلاقات كل كيان.
  • يعد البحث عن المحتوى بناءً على سمات البيانات للكيانات مهمة شاقة.
  • تعيين إصدار لواجهة برمجة التطبيقات بحيث يمكن للمستهلكين والتطبيقات الخلفية التكرار بشكل منفصل.

من أجل معالجة هذه المشاكل ، هناك العديد من المواصفات ، JSON: API هي واحدة من أبرزها.

ما هو JSON؟

JSON - يعد Java Script Object Notation أحد أكثر تنسيقات البيانات شيوعًا لتبادل البيانات عبر خدمات الويب. استبدال XML بشكل أساسي ، فإن طبيعة JSON خفيفة الوزن وسهلة القراءة تجعلها رائعة للغاية.

لماذا يجب أن تفكر في تطبيق مواصفات JSON: API؟

مجموعة من المعايير والاتفاقيات المحددة مسبقًا التي تصف كيفية تقديم واجهات برمجة التطبيقات بواسطة الخوادم واستهلاكها من قبل العملاء لتبادل البيانات بتنسيق JSON ، تقدم مواصفات JSON: API مزايا أساسية عند تنفيذها:

الكفاءة: JSON: تم تصميم مواصفات API بطريقة تحافظ على عدد الطلبات وحجم البيانات للحد الأدنى.

الإنتاجية: غالبًا ما يحدث ، بصفتك مطورًا ، أنك مرتبك تمامًا بشأن أفضل الممارسات التي يجب اتباعها عند إنشاء واجهة برمجة تطبيقات. من ناحية أخرى ، باتباع مجموعة من المعايير ، فأنت خارج المأزق.

الاتساق: توفر المواصفات بنية وسلوكًا متسقين أثناء استهلاكها لإنشاء التطبيقات.

الدعم: المواصفات مقبولة على نطاق واسع ويمكن العثور على عمليات التنفيذ المطلوبة لمكتبات العميل لكل إطار ولغة برمجة تقريبًا.

JSON: وحدة API

تعد وحدة JSON: API الخاصة بـ Drupal 8 تطبيقًا لمواصفات JSON: API. عندما تقوم بتثبيت وتمكين JSON: API ، فإن واجهة برمجة تطبيقات REST تكون متاحة على الفور لكل نوع ضمن تنفيذ دروبال الخاص بك. من خلال اجتياز أنواع وحزم الكيانات بحيث يمكنها إنشاء عناوين URL التي يمكنها من خلالها الوصول إلى الكيانات ومعالجتها ، تحقق الوحدة هذا العمل الفذ.

في حين أن JSON API هي مواصفات معقدة للغاية للتعامل معها ، فإن وحدة JSON API تقوم بعمل رائع في تبسيط عملية استهلاكها ، خاصة لمطوري Drupal الذين تم فصلهم في وقت مبكر.

ومع ذلك ، باتباع نهج "تكوينات أقل" وجاهزية الإنتاج على يمين المربع ، تأتي وحدة JSON: API مع مجموعة من العيوب الخاصة بها.

الدعم: تعتمد وحدة JSON: API بالكامل على الكيانات ، مما يعني أنها تتمحور حول أنواع وحزم كيانات دروبال. ومع ذلك ، تفشل الوحدة النمطية في دعم البيانات المخصصة أو معالجتها.

فشل المهمة: نظرًا لأن الوحدة تعتمد على الكيان ولا يمكنها معالجة البيانات المخصصة ، فإنها تفشل أيضًا في أداء مهام أخرى مثل تسجيل الدخول أو إنشاء الجلسات أو تسجيل خروج المستخدم وما إلى ذلك.

بنية محددة مسبقًا: تقدم JSON: API Module بنية حمولة محددة مسبقًا لا يمكن تعديلها. بمجرد تمكين الوحدة في دروبال ، لا يمكن تغيير هيكل الحمولة الثابت أو تخصيصه مع تغيير متطلبات البائع

منحنى التعلم: نظرًا لأن JSON: تعرض وحدة API جميع سمات الكيان ، فقد تصبح معقدة بطبيعتها. مع منحنى تعليمي شديد الانحدار ، قد لا يكون JSON: API هو فنجان الشاي للجميع.

واجهة برمجة تطبيقات JSON

كيفية تنزيل وتثبيت JSON: API Module؟

تحديث: اعتبارًا من يناير 2020 ، أصبحت JSON: وحدة API الآن جزءًا من Drupal Core (بعد فترة طويلة من نشر هذه المدونة). ومن ثم ، فإن تثبيته لا يتطلب الخطوة التالية.

نظرًا لوجود اعتماد على وحدة التسلسل ، يجب تمكينها أولاً قبل تنزيل JSON: API وتثبيته. يمكن القيام بذلك باستخدام أي من الطرق التالية:

باستخدام Drush

 $ drush en serialization -y $ drush dl jsonapi && drush en jsonapi -y

باستخدام وحدة تحكم دروبال

 $ drupal module:install serialization $ drupal module:download jsonapi && drupal module:install jsonapi