Реалізуйте 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)>"
}
| Description | HTTP Method | URL | Payload Format | Response w/o Payload | Response w/ Payload |
|---|---|---|---|---|---|
| Список інформації про користувачів | 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 вправ та справжнє наставництво від людей, і все це безкоштовно.