لدينا متطلب نحتاج فيه إلى جلب جميع الردود من المستوى الأول التي تم نشرها في موضوع معين. الآن، عند إنشاء موضوع جديد، يتم أيضًا إنشاء منشور. ولإنشاء رد من المستوى الأول على الموضوع، أقوم بإجراء استدعاء API أدناه:
POST http://discourse-url/posts/
{
“raw”: “هذا رد من المستوى الأول على موضوع”,
“topic_id”: 1234,
“reply_to_post_number”: null
}
الآن، لجلب الردود من المستوى الأول، أقوم بإجراء الاستدعاء التالي باستخدام post_id كمعرف للمنشور الأول الذي تم إنشاؤه للموضوع. هذا المنشور يحمل post_number بقيمة 1.
لكن هذا يعيد مصفوفة فارغة. وهذا مفهوم لأن Discourse تعامل الردود من المستوى الأعلى على الموضوع كمنشورات وليست كـ “ردود”. وفي مصطلحات Discourse، يتم “الرد” على المنشورات، بينما يتم “إنشاء منشورات” على المواضيع.
لقد وجدت حلاً بديلاً لذلك. بدلاً من إرسال reply_to_post_number بقيمة null، إذا أرسلتها بقيمة 1، فإن استدعاء API الخاص بالردود يعمل بشكل جيد أيضًا. وفيما يلي مثال على الطلب:
POST http://discourse-url/posts/
{
“raw”: “هذا رد من المستوى الأول على موضوع”,
“topic_id”: 1234,
“reply_to_post_number”: 1
}
الآن يمكنني جلب الردود من المستوى الأول لهذا الموضوع عن طريق إجراء استدعاء API التالي:
بناءً على الإجابة هنا المنشورات مقابل الردود مقابل المواضيع، أشعر أنني قمت بإجراء تغيير جوهري على هيكل المنشورات في Discourse الآن.
سؤالي هو: هل يمكن لهذا التغيير أن يكسر أي وظيفة أخرى في Discourse؟ حاليًا لا أرى أي مشاكل في الموقع مع هذا التغيير. ولكن هل هناك شيء قد أغفله ويجب أن أكون حذرًا بشأنه؟