Implementa un'API RESTful per tenere traccia degli IOU.
Quattro coinquilini hanno l'abitudine di darsi denaro in prestito a vicenda e fanno fatica a ricordare chi deve dei soldi a chi, e quanto.
Il tuo compito è implementare una semplice RESTful API che riceve gli IOU come richieste POST e può fornire determinate informazioni di riepilogo tramite richieste 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)>"
}
| Descrizione | Metodo HTTP | URL | Formato del payload | Risposta senza payload | Risposta con payload |
|---|---|---|---|---|---|
| Elenco delle informazioni degli utenti | GET | /users | {"users":["Adam","Bob"]} |
{"users":<List of all User objects>} |
{"users":<List of User objects for <users> (sorted by name)} |
| Creazione di un utente | POST | /add | {"user":<name of new user (unique)>} |
N/D | <User object for new user> |
| Creazione di un IOU | POST | /iou | {"lender":<name of lender>,"borrower":<name of borrower>,"amount":5.25} |
N/D | {"users":<updated User objects for <lender> and <borrower> (sorted by name)>} |
Implementa i metodi get e post della classe RestAPI.
Scrivi solo le funzioni di gestione, senza implementare un vero server HTTP.
Puoi simulare il database usando un oggetto in memoria che conterrà tutti gli utenti memorizzati.
Il costruttore della classe RestAPI deve accettare come argomento un'istanza di questo database (e impostare un valore predefinito se non è stato passato alcun argomento).
Per questa implementazione, in caso di richiesta GET, il payload deve far parte dell'URL ed essere gestito come parametri di query, per esempio /users?users=Adam,Bob.
Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.