REST API

REST API

متوسط

التعليمات

نفّذ RESTful API لتتبّع سندات الدين.

أربعة من رفقاء السكن يكثرون من اقتراض المال من بعضهم بعضًا، ويجدون صعوبة في تذكّر من يدين لمن وكم.

مهمتك أن تنفّذ RESTful API بسيطًا يستقبل سندات دين عبر طلبات POST، ويستطيع تقديم معلومات موجزة محددة عبر طلبات GET.

مواصفات API

كائن المستخدم

{
  "name": "Adam",
  "owes": {
    "Bob": 12.0,
    "Chuck": 4.0,
    "Dan": 9.5
  },
  "owed_by": {
    "Bob": 6.5,
    "Dan": 2.75
  },
  "balance": "<(total owed by other users) - (total owed to other users)>"
}

الطرق

الوصف طريقة HTTP الرابط صيغة الحمولة الاستجابة بدون حمولة الاستجابة مع حمولة
قائمة معلومات المستخدمين GET /users {"users":["Adam","Bob"]} {"users":<List of all User objects>} {"users":<List of User objects for <users> (sorted by name)}
إنشاء مستخدم POST /add {"user":<name of new user (unique)>} لا ينطبق <User object for new user>
إنشاء سند دين POST /iou {"lender":<name of lender>,"borrower":<name of borrower>,"amount":5.25} لا ينطبق {"users":<updated User objects for <lender> and <borrower> (sorted by name)>}

موارد أخرى

التنفيذ

نفّذ الطريقتين get وpost من صنف RestAPI.

اكتب دوال المعالجة فقط، دون تنفيذ خادم HTTP حقيقي. يمكنك محاكاة قاعدة البيانات باستخدام كائن في الذاكرة سيحتوي على جميع المستخدمين المخزّنين. ينبغي أن يقبل مُنشئ صنف RestAPI نسخة من قاعدة البيانات هذه كوسيط (ويُعيّن قيمة افتراضية لها إذا لم يُمرَّر أي وسيط).

في هذا التنفيذ، في حالة طلب GET، ينبغي أن تكون الحمولة جزءًا من عنوان URL وأن يُتعامل معها مثل معاملات الاستعلام، على سبيل المثال /users?users=Adam,Bob.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
JavaScript Exercism

مستعد لبدء REST API؟

سجّل في Exercism لتتعلّم وتتقن JavaScript عبر 37 مفهومًا159 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.