كنت أقوم ببعض الاختبارات مع نقطة نهاية “الحصول على قائمة عامة بالمستخدمين” وحتاجت إلى التصفح للحصول على المستخدمين المتبقين. استخدمت حقل load_more_directory_items للحصول على المسار للصفحة التالية، والذي كان مدرجًا كـ /directory_items?order=days_visited&page=1&period=all
ومع ذلك، عند استخدام هذا المسار، لم أحصل على استجابة API صحيحة تحتوي على المستخدمين، بل حصلت فقط على بعض HTML. قارنته بنقطة النهاية الأصلية ويبدو أنه ينقصه .json بعد directory_items. إضافة .json إلى مسار الصفحة التالية بدت تعمل. هل يمكن أن يكون هذا خطأ في API؟
عند استخدام واجهة برمجة التطبيقات (API)، يرجى دائمًا استخدام الامتداد .json في أي طلبات، لأنه بينما تعيد معظم النقاط النهائية (endpoints) بيانات بتنسيق JSON افتراضيًا، فإن بعضها يعيد HTML. يبدو أن هذا المسار (route) لا يحتوي على افتراضي، لذا عندما لم يتم تمرير .json، لم يتم العثور على المسار.
يجب عليك تحديد .json بالفعل لتجنب الحصول على صفحة الخطأ هذه، لكنني أتساءل: إذا كنا نكتشف مكالمة API، فهل يجب أن نعيد استجابة HTTP 404 فعلية بدلاً من استجابة 200 مع جسم HTML غير مقروء؟
صحيح، في استدعاء الـ API الأولي، قمت بتحديد .json في نقطة النهاية. كانت المشكلة التي لاحظتها هي أن load_more_directory_items ضمن meta في الاستجابة لم تحدد .json.