استدعاءات البذور أو واجهة برمجة التطبيقات لإنشاء مستخدمين تجريبيين

في عملية التطوير والاختبار الخاصة بي، أقوم بتشغيل مثيل من Discourse (Docker Discourse من Bitnami)، وهو يلبي معظم احتياجات اختبار واجهة برمجة التطبيقات (API) الخاصة بخدمتنا التي تتواصل مع Discourse. ومع ذلك، أحتاج الآن إلى اختبار البحث باستخدام /u/search/users.json?term=and، وأود إضافة بعض المستخدمين إلى خدمة Discourse المحلية هذه لأغراض الاختبار. افتراضيًا، يحتوي النظام على مستخدم واحد فقط باسم “user”.

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

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

شكرًا لك.

هل يسمح لك Bitnami بالوصول إلى سطر الأوامر لمجلد إعدادات discourse؟

إذا كان الأمر كذلك، فراجع ما يلي:

شكرًا لك @fzngagan، للأسف، إصدار Bitnami الخاص بـ Discourse لا يحتوي على أداة Launcher مثبتة. ما الذي يفعله بالضبط الأمر enter app؟ كنت أظن أنني يمكنني ببساطة تشغيل bundle exec rake admin:create، لكنه يُرجع…

rake aborted!
LoadError: cannot load such file -- byebug
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:82:in `require'
/opt/bitnami/discourse/config/application.rb:37:in `<top (required)>'
/opt/bitnami/discourse/Rakefile:5:in `require'
/opt/bitnami/discourse/Rakefile:5:in `<top (required)>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/opt/bitnami/ruby/bin/bundle:23:in `load'
/opt/bitnami/ruby/bin/bundle:23:in `<main>'
(راجع التتبع الكامل بتشغيل المهمة مع الخيار --trace)

لذا بدا هذا واعدًا، لكنني عدت إلى نقطة الصفر مرة أخرى. :frowning:

هل يمكنك استخدام تثبيت Discourse الرسمي المدعوم؟

لدينا عدد من الخدمات المطلوبة في بيئة التطوير الخاصة بنا، ونفضل تشغيل كل شيء (بما في ذلك Discourse وجميع وحداته) بالإضافة إلى تعريف/التحكم في الشبكات بين جميع الخدمات بأمر واحد docker-compose up، وكذلك إيقاف كل شيء مرة أخرى بأمر down. هذا يتجنب الخطوة الإضافية المتمثلة في إضافة launcher إلى تثبيت جديد لبيئة التطوير الخاصة بنا.

حسنًا، تم الحل. لأولئك الذين يستخدمون تثبيت Docker عبر bitnami Discourse docker-compose لأغراض التطوير، إليك الخطوات التي اتبعتها (بإرشاد من ما أشار إليه @fzngagan):

> docker exec -it <اسم الحاوية الخاصة بك> /bin/bash

داخل الحاوية…

> export RAILS_ENV=production

لست متأكدًا من تأثير هذا على التسجيل، وربما كان يجب أن أجرب =dev أو development.. لذا فهذا شيء يمكنكم الإبلاغ عنه، لكنني مستعجل، عذرًا

> bundle exec rake admin:create

أجب عن الأسئلة، ويجب أن يتوافق كلمة المرور مع قواعد Discourse وإلا سيعود السكربت إلى البداية من جديد

ملاحظة: لا حاجة لاستخدام ./Launcher كما هو مذكور في الرابط الذي أشار إليه @fzngagan أعلاه.

من المؤسف أن هذا غير متاح عبر واجهة برمجة التطبيقات (API) إذا كان Discourse مضبوطًا على بيئة Dev أو Test، لأن ذلك سيُسهّل الاختبار والتطوير بشكل كبير لخدمات الـ API التي ترغب في الاستخدام، ومع ذلك سأكتفي بسطر الأوامر داخل حاوية Docker حتى الآن.

ملاحظة إضافية، يبدو أن الأمر > export RAILS_ENV=production (ضبطه على production) لا يؤثر على معلومات تسجيل الدخول في Discourse، ومع ذلك لم أقوم بإيقاف/إعادة تشغيل docker-compose بعد هذا التغيير، لذا قد يكون من الضروري حذف متغير البيئة أو ضبطه على development أو dev أو أي قيمة أخرى.