أبلغ عن خطأ في واجهة برمجة تطبيقات المكون الإضافي Discourse Chat. عند الاستعلام عن رسائل الدردشة السابقة، يتم تجاهل المعلمة page_size، ويعيد نقطة النهاية دائمًا الحد الأقصى لعدد الرسائل.
خطوات التكرار:
إجراء استدعاء لواجهة برمجة التطبيقات لنقطة نهاية رسائل الدردشة (على سبيل المثال، /chat/{channel_id}/messages.json).
استخدام المعلمات التالية في الطلب:
target_message_id: [معرف رسالة حديثة]
direction: past
page_size: 5 (أو أي رقم أقل من 50)
السلوك المتوقع: يجب أن تعيد واجهة برمجة التطبيقات كائن JSON يحتوي على 5 رسائل كحد أقصى تم إرسالها قبل target_message_id المحدد.
السلوك الفعلي: تعيد واجهة برمجة التطبيقات 50 رسالة، متجاهلة المعلمة page_size=5. يبدو أنها مبرمجة بشكل ثابت على الحد الأقصى لحجم الصفحة في هذا السيناريو.
لقد قضيت بعض الوقت في محاولة تكرار ذلك، لكنني لم أتمكن من القيام بذلك.
لقد تحققت من Chat::MessagesQuery و Chat::ListChannelMessages وإجراء وحدة التحكم من خلال مواصفاتنا ويدويًا على مثيل محلي أيضًا. يتم أخذ معلمة page_size في الاعتبار كما هو متوقع، وكذلك معلمة direction.
@Nima1 هل أنت متأكد من استخدام نقطة النهاية الصحيحة؟ يجب أن تحتوي على api فيها، مثل: /chat/api/channels/3/messages?target_message_id=40&direction=past&page_size=5.
شيء آخر لم أتحقق منه هو ما إذا كان يتصرف بشكل مختلف على stable. هل مثيلك محدث بفرع tests-passed؟
تعيد واجهة برمجة التطبيقات (API) الرسائل الافتراضية البالغ عددها 50 بدلاً من الـ 5 المطلوبة، على الرغم من توفر العديد من الرسائل في الموضوع. يبدو أن المشكلة خاصة بنقطة نهاية واجهة برمجة تطبيقات المواضيع.