مرحباً،
أتساءل عما إذا كان هناك أي طريقة يمكننا من خلالها استدعاء واجهة برمجة تطبيقات (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 وعرض بيانات الاستجابة في بعض الصفحات الثابتة للمستخدم.
شكرًا لك
استخدم الخلفية (backend) لإجراء الاتصال:
في حال كانت الدعوة طويلة الأمد، ضعها في مهمة (Job).
سيحتاج ذلك إلى بعض كود Ruby في إضافة (Plugin) وإلى إحدى المكتبات المذكورة أعلاه.
ليس بالضرورة أن يكون تطوير إضافات Discourse أمراً سهلاً؛ فهي منصة كبيرة ومعقدة وموجهة برأي معين، ولكن هناك أدلة رسمية جيدة هنا، بالإضافة إلى عدد كبير من الإضافات مفتوحة المصدر الموجودة مسبقاً والتي يمكنك الاطلاع عليها (انظر #plugin والروابط إلى GitHub). حاول العثور على إضافة تقوم بشيء مشابه ونظّر في كيفية حل المسألة في الكود.
إذا كان الأمر سطحياً، ففكر في استخدام مكون سمة (Theme Component). راجع أدلة تطوير السمات هنا.
استعرض أمثلة، مثل هذا المثال: discourse-tc-quote-of-the-day/get-quote.js.es6 في الفرع الرئيسي · merefield/discourse-tc-quote-of-the-day (github.com)
حسناً @merefield، أنا أبحث في الأمر. أقدر ملاحظاتك.