نفّذ RESTful API لتتبّع سندات الدين.
أربعة من رفقاء السكن يكثرون من اقتراض المال من بعضهم بعضًا، ويجدون صعوبة في تذكّر من يدين لمن وكم.
مهمتك أن تنفّذ RESTful API بسيطًا يستقبل سندات دين عبر طلبات POST، ويستطيع تقديم معلومات موجزة محددة عبر طلبات GET.
{
"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.
سجّل في Exercism لتتعلّم وتتقن JavaScript عبر 37 مفهومًا159 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.