مرحباً،
أتساءل عما إذا كان هناك أي طريقة يمكننا من خلالها استدعاء واجهة برمجة تطبيقات (API) مخصصة تابعة لجهة خارجية تم إنشاؤها باستخدام Node.js في Discourse؟
التعليقات مرحب بها
شكراً
مرحباً،
أتساءل عما إذا كان هناك أي طريقة يمكننا من خلالها استدعاء واجهة برمجة تطبيقات (API) مخصصة تابعة لجهة خارجية تم إنشاؤها باستخدام Node.js في Discourse؟
التعليقات مرحب بها
شكراً
لا يجب أن يهم في أي لغة تم كتابة الـ API، طالما أن جميع التفاعلات تتم عبر HTTP.
من المرجح أن تحتاج إلى كتابة بعض استدعاءات JavaScript AJAX في مكون السمة (Theme Component)، أو إذا كان ذلك مناسبًا، قم بإجراء استدعاءات HTTP في كود إضافة (Plugin) جديد تكتبه بلغة Ruby باستخدام مكتبة Ruby مناسبة مثل Excon أو Httparty.
شكرًا لك على الرد @merefield، أقدر ملاحظاتك.
أنا جديد في تطوير Discourse. في السابق، قمت بالعمل على نظام إدارة المحتوى Nodebb الخاص بمجتمع Nodejs. هناك، قمت بالعديد من التعديلات (مثل إنشاء واجهة برمجة تطبيقات مخصصة لجلب بيانات التذاكر من Zoho، واستخراج قائمة مقاطع فيديو Vimeo، وغيرها الكثير). لذا أريد القيام بنفس الشيء أو إنشاء واجهات برمجة تطبيقات مماثلة في Discourse وعرض بيانات الاستجابة في بعض الصفحات الثابتة للمستخدم.
شكرًا لك
استخدم الواجهة الخلفية لإجراء المكالمة:
إذا كانت تستغرق وقتًا طويلاً، ضعها في مهمة (Job).
سيستدعي ذلك بعض كود Ruby في إضافة (Plugin) وإحدى مكتبات gems المذكورة أعلاه.
لا يُعد الدخول في تطوير إضافات Discourse أمرًا سهلاً بالضرورة؛ فهو منصة ضخمة ومعقدة وذات توجهات واضحة، لكن هناك دليلين رسميين جيدين هنا، وكثيرًا من الإضافات مفتوحة المصدر الموجودة مسبقًا التي يمكنك الاطلاع عليها (انظر Customization > Plugin والروابط إلى GitHub). حاول العثور على إضافة تقوم بشيء مشابه وتصفح كيفية حلها في الكود.
إذا كان التعديل سطحيًا، ففكر في استخدام مكون سمة (Theme Component). اطّلع على دليل تطوير السمات هنا.
اطّلع على أمثلة، مثل هذا المثال: discourse-tc-quote-of-the-day/get-quote.js.es6 at master · merefield/discourse-tc-quote-of-the-day (github.com)
حسناً @merefield، أنا أبحث في الأمر. أقدر ملاحظاتك.