إذا كنت تقوم ببناء واجهة مستخدم (UI) قبل وجود الواجهة الخلفية (backend)، فأنت بحاجة إلى بيانات لعرضها، ويعد DummyJSON أحد أسرع الطرق للحصول عليها. إنه واجهة برمجة تطبيقات REST وهمية مجانية ومستضافة، تقدم منتجات ومستخدمين وعربات تسوق واقعية والمزيد عبر بروتوكول HTTP العادي، ولا يتطلب التسجيل. يشرح هذا الدليل ما يوفره DummyJSON لك، وكيف يقارن بواجهات برمجة التطبيقات العامة الأخرى للاختبار، وماذا تفعل عندما لا تكون البيانات الثابتة النائبة كافية.
ما هو DummyJSON؟
DummyJSON هي واجهة برمجة تطبيقات JSON مجانية للبيانات النائبة. ترسل طلبًا إلى نقطة نهاية عامة، وتقوم بإرجاع بيانات عينة منظمة وواقعية. لا توجد قاعدة بيانات لإعدادها ولا مفتاح لتسجيله. وُجدت لمساعدة مطوري الواجهات الأمامية والطلاب وأي شخص يقوم بعمل نموذج أولي على الاتصال بنقطة نهاية شبكة حقيقية بدلاً من ترميز المصفوفات في تعليماتهم البرمجية.

البيانات وهمية ولكنها متماسكة. يحتوي المنتج على عنوان وسعر وتقييم وعدد المخزون وفئة. يمتلك المستخدم اسمًا وبريدًا إلكترونيًا وعنوانًا وشركة. هذه الاتساق يجعل DummyJSON مفيدًا لربط الجداول والبطاقات والترقيم والصفحات التفصيلية التي تبدو وكأنها الشيء الحقيقي. نظرًا لأن السجلات متداخلة ومكتوبة بالطريقة التي تكون عليها بيانات الإنتاج عادةً، يمكنك بناء عوامل التصفية وعناصر التحكم في الفرز وطرق العرض التفصيلية دون الحاجة إلى اختراع بياناتك الثابتة أولاً.
يقدم DummyJSON كل شيء عبر HTTPS كـ JSON، لذا فهو يعمل بنفس الطريقة سواء من جلب المتصفح، تطبيق جوال، أمر curl، أو نص برمجي من جانب الخادم. لا يوجد شيء للتثبيت. تقوم بتوجيه طلب إلى عنوان URL وتحصل على بيانات، وهذا بالضبط ما تريده خلال الساعات الأولى من المشروع عندما لا تكون واجهة برمجة التطبيقات الحقيقية موجودة بعد.
إنها أداة للتعلم والنمذجة الأولية، وهي جيدة في هذه المهمة. عندما تحتاج إلى نقطة نهاية للاستدعاء في برنامج تعليمي أو عرض توضيحي سريع، فإنها توفر لك وقتًا حقيقيًا.
نقاط نهاية DummyJSON، المصادقة، والحدود
يكشف DummyJSON عن العديد من مجموعات الموارد. الأكثر شيوعًا هي:
/products، عناصر الكتالوج مع السعر والمخزون والتقييمات/users، أشخاص مع عناوين وبريد إلكتروني وتفاصيل الشركة/carts، عربات التسوق المرتبطة بالمستخدمين/postsو/comments، محتوى على نمط المدونة/todos، عناصر المهام/recipesو/quotes، مجموعات محتوى إضافية
تدعم كل مجموعة الأنماط التي تتوقعها من واجهة برمجة تطبيقات REST. يمكنك جلب جميع السجلات، جلب سجل واحد بواسطة المعرف، البحث، التصفية حسب الفئة، والترقيم باستخدام limit و skip. يقوم المعامل select بقص الاستجابة إلى حقول محددة، ويسمح لك المعامل delay (من 0 إلى 5000 مللي ثانية) بمحاكاة شبكة بطيئة حتى تتمكن من اختبار حالات التحميل.
إليك قراءة أساسية:
curl https://dummyjson.com/products?limit=5&skip=10
تستخدم المصادقة نقطة نهاية تسجيل دخول ورمز مميز (bearer token). تقوم بنشر بيانات الاعتماد إلى /auth/login، وتحصل على رمز مميز، وترسله مع الطلبات المحمية:
# 1. قم بتسجيل الدخول للحصول على رمز مميز
curl -X POST https://dummyjson.com/auth/login \
-H 'Content-Type: application/json' \
-d '{"username":"emilys","password":"emilyspass"}'
# 2. استخدم الرمز المميز في طلب مصادق عليه
curl https://dummyjson.com/auth/me \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN_HERE'
الكتابة مدعومة أيضًا. يمكنك إرسال طلبات POST و PUT و PATCH و DELETE، وتستجيب واجهة برمجة التطبيقات وكأن التغيير قد حدث. ولكن، هذه الكتابات محاكاة. يعكس DummyJSON سجلًا يبدو محدثًا أو منشأ، ولكن لا شيء يدوم. عند التحديث، يختفي منتجك "الجديد". هذا تصميم مقصود لخدمة عامة مشتركة، وهو أهم حد يجب فهمه. لا تنشر الوثائق حدودًا صارمة للمعدل، ولكن تعامل مع أي نقطة نهاية مجانية مشتركة بلطف ولا توجه اختبار تحميل إليها.
للحصول على جولة أوسع حول ما هو متاح بخلاف DummyJSON، يغطي ملخص واجهات برمجة التطبيقات المجانية للمطورين الخيارات عبر العديد من الفئات.
DummyJSON مقابل JSONPlaceholder مقابل Reqres
DummyJSON ليس واجهة برمجة التطبيقات REST الوهمية المجانية الوحيدة. أكثر اثنتين يتم مقارنتهما بها هما JSONPlaceholder و Reqres. تتداخلان، ولكن لكل منهما توجه مختلف.
| الأداة | الأفضل لـ | الموارد | تدفق المصادقة | هل تدوم عمليات الكتابة؟ |
|---|---|---|---|---|
| DummyJSON | عروض التجارة الإلكترونية الواقعية | المنتجات، المستخدمين، عربات التسوق، المنشورات، الوصفات، والمزيد | نقطة نهاية تسجيل الدخول + رمز مميز للمصادقة | لا (محاكاة) |
| JSONPlaceholder | دروس CRUD السريعة، إعداد بسيط | المنشورات، التعليقات، المستخدمين، المهام، الألبومات، الصور | لا شيء | لا (محاكاة) |
| Reqres | عروض تدفق المصادقة والطلب/الاستجابة | المستخدمين، تسجيل/تسجيل دخول وهمي | تسجيل/تسجيل دخول وهمي | لا (محاكاة) |
النمط هو نفسه عبر الثلاثة. تحصل على بيانات ثابتة للقراءة بشكل أساسي، والكتابات وهمية، ولا يمكنك تغيير شكل ما يعود إليك. يعمل JSONPlaceholder على json-server تحت الغطاء، ولهذا السبب يبدو نموذج بياناته عامًا جدًا. يفوز DummyJSON عندما تريد بيانات تشبه متجرًا حقيقيًا. يعتبر Reqres مفيدًا عندما تقوم بعرض شاشة تسجيل الدخول بشكل خاص.
المصادر الرسمية تستحق الحفظ في المفضلة: JSONPlaceholder ومستودع DummyJSON على GitHub إذا كنت ترغب في استضافتها بنفسك أو قراءة الكود.
عندما لا تكون البيانات النائبة الثابتة كافية
تواجه واجهات برمجة التطبيقات الوهمية المستضافة جدارًا سريعًا بمجرد أن يصبح مشروعك محددًا. ستشعر بذلك عندما:
- يتطلب تطبيقك حقولاً لا يمتلكها DummyJSON. ببساطة، كائن
subscription_tierأوfeature_flagsليس موجودًا في المخطط، ولا يمكنك إضافته. - تحتاج إلى عمليات كتابة تدوم. بناء تدفق عربة تسوق أو لوحة تحكم يعني إنشاء سجل وقراءته مرة أخرى. عمليات الكتابة المحاكاة تكسر هذه الحلقة.
- تحتاج إلى اختبار مسارات الأخطاء. يجب أن يتعامل التطبيق الحقيقي مع رمز
429أو500أو حمولة بيانات سيئة التنسيق. لن تنتج واجهات برمجة التطبيقات ذات النجاح الثابت هذه عند الطلب. - يجب أن تتطابق بياناتك مع عقد OpenAPI الخاص بك حتى تتفق الواجهة الأمامية والخلفية قبل شحن الخادم الحقيقي.
هذه هي النقطة التي تتوقف فيها عن استعارة واجهة برمجة تطبيقات وهمية من شخص آخر وتبدأ في إنشاء واجهتك الخاصة. تريد نفس الراحة الخالية من الواجهة الخلفية، ولكن بمخططك الخاص، وأسماء الحقول الخاصة بك، والاستجابات التي تتحكم فيها.
كيف تبني واجهة برمجة تطبيقات REST وهمية مخصصة خاصة بك باستخدام Apidog
Apidog هي منصة واجهات برمجة تطبيقات (API) تقوم بتصميم واختبار وتوثيق ومحاكاة واجهات برمجة التطبيقات في مكان واحد. خادمها الوهمي هو الجزء الذي يحل محل واجهة برمجة تطبيقات وهمية مستضافة عندما تتجاوز البيانات الثابتة. بدلاً من قبول أي شيء يعيده DummyJSON، يمكنك تحديد نقطة النهاية وشكل البيانات، ويقوم Apidog بإنشاء استجابات واقعية تتطابق معها. للمتابعة، قم بتنزيل Apidog وإنشاء مشروع مجاني.
إليك سير العمل:
1. حدد نقطة النهاية والمخطط الخاص بك. أنشئ نقطة نهاية مثل GET /products واصف حقول الاستجابة: id، title، price، stock، category. يمكنك القيام بذلك يدويًا أو استيراد ملف OpenAPI/Swagger موجود بحيث تتطابق المحاكاة مع عقدك الحقيقي.
2. دع المحاكاة الذكية تُولّد البيانات. يقرأ Apidog أسماء حقولك وأنواعها، ثم ينتج قيمًا معقولة تلقائيًا. حقل يسمى email يعيد بريدًا إلكترونيًا، price يعيد رقمًا، createdAt يعيد تاريخًا. لا حاجة لكتابة بيانات ثابتة يدويًا. إذا كنت قد استخدمت Faker من قبل، فهذه هي نفس الفكرة المدمجة في المنصة. يشرح الدليل حول توليد بيانات وهمية من مخططات OpenAPI الجانب الذي يحركه المخطط بالتفصيل.
3. قم بتخصيص القيم وحالات الحافة. هل تحتاج إلى نطاق محدد لـ price، أو قيمة ثابتة لـ status، أو استجابة متعمدة 500 لاختبار معالجة الأخطاء؟ يمكنك تعيين قواعد لكل حقل ولكل استجابة. هذا هو الجزء الذي لا تستطيع واجهات برمجة التطبيقات المستضافة القيام به، لأنك أنت من يمتلك التعريف.
4. قم بتشغيل خادم المحاكاة واستدعائه. يمنحك Apidog عنوان URL مباشرًا. وجه واجهتك الأمامية إليه تمامًا كما كنت ستوجهها إلى DummyJSON، باستثناء أن كل حقل ورمز حالة أصبح الآن ملكًا لك:
curl https://<your-mock-host>/products?limit=5
نظرًا لأن المحاكاة يتم إنشاؤها من مخططك، فعندما يتغير مواصفات واجهة برمجة التطبيقات الخاصة بك، تتغير المحاكاة معها. لا تنحرف بياناتك الوهمية وعقدك الحقيقي أبدًا. إذا كنت تريد مجموعات بيانات أكثر واقعية وتنوعًا، فإن النهج المتبع في إنشاء بيانات اختبار API واقعية يتوافق جيدًا مع التطوير القائم على المحاكاة.

المقايضة الصادقة: يفوز DummyJSON في السرعة لعرض توضيحي مؤقت، حيث لا يوجد شيء لتهيئته. يفوز Apidog في اللحظة التي تحتاج فيها إلى مخططك الخاص، وكتابات ذات إحساس بالاستمرارية، وأخطاء قابلة للتحكم، أو محاكاة تتزامن مع واجهة برمجة التطبيقات الحقيقية التي ستشحنها.
الأسئلة المتكررة
هل DummyJSON مجاني للاستخدام؟
نعم. DummyJSON مجاني ولا يحتاج إلى مفتاح API. يمكنك استدعاء نقاط نهايته العامة مباشرة من المتصفح، أو curl، أو تطبيقك. ومثل أي خدمة مجانية مشتركة، فهو مخصص للنمذجة الأولية والتعلم، وليس لحركة المرور الإنتاجية أو اختبار التحميل.
هل يحفظ DummyJSON البيانات التي أنشئها أو أحدثها؟
لا. طلبات POST وPUT وPATCH وDELETE تعيد استجابة تبدو ناجحة، ولكن لا شيء يستمر على الخادم. القراءة التالية تعيد البيانات الأصلية. عندما تحتاج إلى عمليات كتابة تدوم بالفعل، قم بإنشاء محاكاتك الخاصة. يشرح دليل واجهات برمجة التطبيقات الوهمية الفرق بين المحاكاة المشابهة والمحاكاة ذات الحالة.
ما الفرق بين DummyJSON وخادم المحاكاة؟
DummyJSON هي مجموعة بيانات ثابتة مستضافة يشاركها الجميع. خادم المحاكاة، مثل الموجود في Apidog، يعمل مقابل مخططك ويعيد البيانات ورموز الحالة التي تحددها. استخدم DummyJSON للعروض التوضيحية العامة، وخادم المحاكاة عندما يجب أن تتطابق البيانات مع واجهة برمجة التطبيقات الخاصة بك.
هل يمكنني الحصول على بيانات واقعية بدلاً من البيانات النائبة الواضحة؟
نعم، إذا قمت بإنشائها من مخطط. تقوم الأدوات التي تعتمد على المخطط بقراءة أسماء حقولك وأنواعها وتنتج قيمًا معقولة تلقائيًا، بحيث يبدو حقل email كبريد إلكتروني ويبدو price كسعر. هذا هو السبب الرئيسي الذي يدفع الفرق للانتقال من واجهة برمجة تطبيقات وهمية ثابتة إلى محاكاتها الخاصة.
الخاتمة
DummyJSON هي واجهة برمجة تطبيقات REST وهمية مجانية قوية. إنها أسرع طريقة لعرض واجهة مستخدم مقابل منتجات ومستخدمين وعربات تسوق ذات مظهر واقعي دون كتابة سطر واحد من كود الواجهة الخلفية، وبالنسبة للدروس التعليمية أو النماذج الأولية السريعة، من الصعب التغلب عليها. تظهر القيود عندما تحتاج إلى حقولك الخاصة، أو عمليات كتابة تدوم، أو أخطاء قابلة للتحكم، أو بيانات تتتبع عقد واجهة برمجة التطبيقات الخاصة بك.
عندما تصل إلى هذه النقطة، قم بإنشاء واجهة برمجة تطبيقات REST وهمية مخصصة خاصة بك بدلاً من استعارة واحدة ثابتة. يتيح لك Apidog تحديد المخطط، ومحاكاة البيانات الواقعية منه تلقائيًا، والحفاظ على المحاكاة متزامنة مع واجهة برمجة التطبيقات التي ستقوم بشحنها. جربه مجانًا وحوّل مواصفاتك إلى محاكاة عملية في دقائق.
