لابد أن أي مطور ويب بالعموم وأي مطور ووردبريس بشكل خاص أن يكون على دراية بمفهوم API الذي هو اختصار لـApplication Programming Interface أي واجهة برمجة التطبيقات والذي يوفر للمطور آلية سهلة للاتصال ببيانات التطبيقات على اختلاف أنواعها.

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

ما معنى API

بداية دعونا نتفق على الفكرة الأساسية من إيجاد واجهة برمجة التطبيقات وهو بشكل أساسي إيجاد وسيلة لتبادل البيانات المطلوبة ومعالجتها بطريقة سهلة وسلسلة عبر أكثر من نظام أساسي من خلال توفير واجهة يمكنها تبادل البيانات بين تطبيقين بموجب مجموعة القواعد تسمى هذه الواجهة API.

مع العلم أنه يمكن لمالكي واجهة برمجة التطبيقات توفير واجهاتهم هذه بشكل مجاني أو مدفوع للتطبيقات الأخرى للاستفادة منها. على سبيل المثال يوفر موقع يوتيوب واجهة برمجة تطبيقات مجانية خاصة به لمنشئي المحتوى بحيث يمكن لمنشئي المحتوى مشاهدة المشتركين في البث المباشر على موقع الويب الخاص بهم..

ما هي فوائد استخدام API

يوفر استخدام واجهة برمجة التطبيقات عدة فوائد للمطورين وأهمها:

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

ما هي واجهة REST API في ووردبريس

REST API هي واجهة برمجة تطبيقات مخصصة للتواصل مع مواقع ووردبريس وهي ميزة موجهة للمطورين تم تقديمها في إصدار WordPress 4.4 فهي تسمح للمواقع والتطبيقات الخارجية بأن تتفاعل مع نواة نظام ووردبريس أو بعبارة أخرى مع كافة البيانات التي يوفرها موقع ووردبريس دون الحاجة إلى الوصول للواجهة الأمامية أو الخلفية لهذا الموقع.

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

هذه الميزة تجعل ووردبريس قابل للتوسع وتتيح له كذلك إمكانية التعامل أو التخاطب مع العديد من لغات البرمجة الأخرى مثل JavaScript أو أحد مكتباتها أو لغة C # أو جافا أو غيرها من التقنيات المختلفة.

وباالتالي تعتبر REST API ميزة قوية وتضيف بعد إضافي للووردبريس يمكن للمطورين والمستخدمين على حد سواء الاستفادة منها كوسيلة هامة لتوفير مزايا وإضافات جديدة إلى نظام ووردبريس..

مثال عملي على استخدام REST API في ووردبريس.

لنفترض على سبيل المثال أنك تريد الاستفادة من واجهة REST API في ووردبريس كي تجلب المقالات من أحد المواقع الخارجية إلى موقعك أو تطبيقك الخاص (الذي يمكن أن يعمل بأي تقنية كانت سواء كان جوملا أو دروبال أو أندرويد أو جافاسكريبت أو حتى ووردبريس نفسه..)

كي تنفذ هذه المهمة عليك أن تكون على دراية بالدوال البرمجية (مثل طلبات GET وPOST وPUT وDELETE ) وبالمسارات اللازمة التي تمكنك من الاستعلام من هذه الواجهة البرمجية للموقع الهدف لكنا هنا سنشرح الفكرة بشكل مبسط.

يكون المسار الأساسي لواجهة برمجة تطبيقات REST لموقع إلكتروني معين كما يلي:

[سجل الدخول لترى الرابط]

على سبيل المثال الكود التالي يجلب كافة واجهة برمجة التطبيقات للمدونة التقنية الشهيرة تك كرانش techcrunch

[سجل الدخول لترى الرابط]

ولاسترجاع المقالات المنشورة فقط من هذا الموقع يمكنك استدعاء الرابط التالي:

[سجل الدخول لترى الرابط]

كما تلاحظ كل ما عليك هو كتابة عنوان url للموقع والوصول لكل بياناته من داخل المتصفح، إذا انتقلت إلى الرابط السابق فسوف تتمكن من رؤية كافة المنشورات التي يتم إرجاعها الك بصيغة json كما يلي

فهذه الطلاسم التي تراها هنا هي جميع مقالات موقع الويب الخاصة بموقع techcrunch والذي وفر لك الوصول لهذه المقالات بشكل استجابة json هو واجهة api المجانية التي يوفرها الموقع والتي عليك أن تعرف كيف تستفيد منها في تطبيقك.

يقوم REST API v2 في الرابط السابق بإرجاع مجموعة معينة من الحقول الافتراضية للمقالة وإذا كنت تريد حقولًا مختلفة على سبيل المثال إذا أردت الحصول على عنوان المقالات المنشورة فقط يمكنك تمريره كوسيط للرابط بالشكل التالي:

[سجل الدخول لترى الرابط]

وفي حال أردت الحصول على عنوان المقال وتاريخ نشرها يمكنك تمرير الحقول المطلوبة للرابط كما يلي:

[سجل الدخول لترى الرابط]

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

على سبيل المثال البرنامج التالي هو عبارة عن [سجل الدخول لترى الرابط] مهمته جلب كافة مقالات أي موقع ووردبريس تريده من خلال التواصل مع واجهة REST API لهذا الموقع

في المثال الموضح هنا استخدمت واجهة برمجة التطبيقات الخاصة بموقع [سجل الدخول لترى الرابط] لجلب آخر عشر مقالات منشورة لديهم وعرضها على صفحة تطبيقي دون الحاجة لأن أنسخها من واجهة الموقع بنفسي.

ملاحظات حول استخدام Rest API في ووردبريس:

  • عندما تحصل على معلومات من موقع ووردبريس سواء المقالات أو غيرها فمن الأفضل أن تقوم بإجراء عملية نسخها في ذاكرة تخزين مؤقتة (كاش) في مكان ما على الجهاز المتصل بالواجهة مما يجعل عملية استعادة هذه البيانات أسرع وأكثر كفاءة.

  • عند العمل مع موارد خارجية في موقع ووردبريس ما، فمن الأفضل أن تحدد هويتك.وتقوم بطلب عملية مصادقة لتعريف نفسك (من خلال إرسال اسم المستخدم وكلمة المرور الخاصين بك مع كل طلب وهذا حل غير آمن 100%، أو تقوم باستخدام مصادقة OAuth من خلال تثبيت [سجل الدخول لترى الرابط])

هذه فكرة عامة عن تقنية API وأهمية استخدامها في ووردبريس، بالنسبة لك هل سبق واستخدمت REST API في أحد التطبيقات أو المواقع التي تقوم بتطويرها أو العمل عليها؟ وكيف استفدت منها بالشكل الأمثل؟ شاركنا تجربتك في التعليقات أسفل المشاركة

    علا صالح

    طرح مفيد أخت علاً شكراً لك.

    وبالفعل تنطوّر الـ API وانتشاره مؤخراً ساعد كثيراً في نشر فكرة البرمجيات التي يتم تقديمها كخدمة والتي تعرف إختصاراً بــ SASS.

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

    علا صالح

    طرح مميز - ما شاء الله

    لدى سؤال: هل يمكننا منع الـ API من مواقع الووردبريس أم أنه شيء إجباري، وهل يوجد أضرار لهذا المنع؟

      صلاح سلامة

      نعم بالفعل أخ صلاح قد يرغب بعض أصحاب المواقع في تعطيل هذه الميزة لحماية بيانات JSON الخاصة بمواقعهم لأن بعض هذه البيانات مثل أسماء المستخدمين التي يمكن الوصول لها من خلال المسار / wp-json / wp / v2 / users فالمخترق سيحاول توقع كلمات مرور هؤلاء المستخدمين بعد أن عرف أسماءهم..

      لهذا السبب تجد بعض أصحاب المواقع يقومون بتعطيلها وهذا ممكن إما من خلال إضافة الكود البرمجي التالي لملف وظائف القالب functions.php الذي يمنع يسمح بالوصول إلى جميع مسارات واجهة برمجة تطبيقات REST

      تسجيل الدخول لعرض الكود

      تسجيل الدخول لعرض الكود

      تسجيل الدخول لعرض الكود

      تسجيل الدخول لعرض الكود

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

      على سبيل المثال مرة جربت الحصول على أخبار مدونة أخيار مايكروسوفت المبنية باستخدام ووردبريس ولكني وجدت أنها تمنع المستخدمين الغير مخولين من استخدام هذه الميزة

      [سجل الدخول لترى الرابط]

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

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

        علا صالح

        أشكرك للغاية على ردك الوافي. جزاكم الله خيرًا.

        أرى إذن أن الحل الأفضل هو أن يتم اغلاق الـ REST API على المستخدمين المخوّل لهم الدخول كما فعلت مدونة مايكروسوفت تمامًا.

        علا صالح

        جزاك الله خيرا لكني اريد استزادة في الفهم بالنسبة للاكواد الموجودة في ملف functions.php هذه لم افهمها تماما هل يوجد لها شرح هذه التي تمنع اخذ البيانات من الموقع

        هل هذه البيانات للبوستات فقط ام كل الموقع سواء كورسات او غيرها