Chat API: معلمة page_size يتم تجاهلها عندما يكون direction=past

أبلغ عن خطأ في واجهة برمجة تطبيقات المكون الإضافي Discourse Chat. عند الاستعلام عن رسائل الدردشة السابقة، يتم تجاهل المعلمة page_size، ويعيد نقطة النهاية دائمًا الحد الأقصى لعدد الرسائل.

خطوات التكرار:

  1. إجراء استدعاء لواجهة برمجة التطبيقات لنقطة نهاية رسائل الدردشة (على سبيل المثال، /chat/{channel_id}/messages.json).

  2. استخدام المعلمات التالية في الطلب:

    • target_message_id: [معرف رسالة حديثة]

    • direction: past

    • page_size: 5 (أو أي رقم أقل من 50)

السلوك المتوقع: يجب أن تعيد واجهة برمجة التطبيقات كائن JSON يحتوي على 5 رسائل كحد أقصى تم إرسالها قبل target_message_id المحدد.

السلوك الفعلي: تعيد واجهة برمجة التطبيقات 50 رسالة، متجاهلة المعلمة page_size=5. يبدو أنها مبرمجة بشكل ثابت على الحد الأقصى لحجم الصفحة في هذا السيناريو.

شكرًا لكم على النظر في هذا الأمر!

إعجابَين (2)

يبدو هذا متعمدًا إلى حد ما عند قراءة التنفيذ:

ربما لدى @loic بعض الأفكار هنا.

إعجابَين (2)

لقد قضيت بعض الوقت في محاولة تكرار ذلك، لكنني لم أتمكن من القيام بذلك.

لقد تحققت من 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؟

إعجابَين (2)

شكراً لاهتمامك بهذا الأمر.

أعتذر، لقد نسيت ذكر تفصيل مهم: هذه المشكلة تحدث فقط في القنوات التي تم تمكين المواضيع فيها. هذا هو السبب على الأرجح لعدم تمكنك من تكرارها.

يتم تجاهل المعلمة page_size عند جلب الرسائل من موضوع معين. على سبيل المثال، عندما أستخدم نقطة النهاية هذه مع page_size=5:

/chat/api/channels/64/threads/1526/messages?target_message_id=19205&page_size=5

تعيد واجهة برمجة التطبيقات (API) الرسائل الافتراضية البالغ عددها 50 بدلاً من الـ 5 المطلوبة، على الرغم من توفر العديد من الرسائل في الموضوع. يبدو أن المشكلة خاصة بنقطة نهاية واجهة برمجة تطبيقات المواضيع.

إعجابَين (2)

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

4 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 3 أيام من آخر رد. لم يعد يُسمح بالردود الجديدة.