Implementiere eine RESTful-API zum Verwalten von Schuldscheinen.
Vier Mitbewohner leihen sich gegenseitig häufig Geld und haben Mühe, sich zu merken, wer wem wie viel schuldet.
Deine Aufgabe ist es, eine einfache RESTful-API zu implementieren, die Schuldscheine über POST-Anfragen entgegennimmt und über GET-Anfragen bestimmte zusammenfassende Informationen liefern kann.
{
"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)>"
}
| Beschreibung | HTTP-Methode | URL | Payload-Format | Antwort ohne Payload | Antwort mit Payload |
|---|---|---|---|---|---|
| Liste der Benutzerinformationen | GET | /users | {"users":["Adam","Bob"]} |
{"users":<List of all User objects>} |
{"users":<List of User objects for <users> (sorted by name)} |
| Benutzer erstellen | POST | /add | {"user":<name of new user (unique)>} |
N/A | <User object for new user> |
| Schuldschein erstellen | POST | /iou | {"lender":<name of lender>,"borrower":<name of borrower>,"amount":5.25} |
N/A | {"users":<updated User objects for <lender> and <borrower> (sorted by name)>} |
Implementiere die Methoden get und post der Klasse RestAPI.
Du solltest nur die Handler-Funktionen schreiben, ohne einen echten HTTP-Server zu implementieren.
Du kannst die Datenbank mit einem Objekt im Arbeitsspeicher mocken, das alle gespeicherten Benutzer enthält.
Der Konstruktor der Klasse RestAPI sollte eine Instanz dieser Datenbank als Argument annehmen (und einen Standardwert dafür setzen, wenn kein Argument übergeben wurde).
Bei dieser Implementierung sollte die Payload im Fall einer GET-Anfrage Teil der URL sein und wie Query-Parameter behandelt werden, zum Beispiel /users?users=Adam,Bob.
Melde dich bei Exercism an, um JavaScript mit 37 Konzepte159 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.