REST API

REST API

Medio

Istruzioni

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.

Specifiche dell'API

Oggetto utente

{
  "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)>"
}

Metodi

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)>}

Altre risorse

Implementazione

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.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
JavaScript Exercism

Vuoi iniziare REST API?

Iscriviti a Exercism per imparare e padroneggiare JavaScript con 37 concetti159 esercizi e il mentoring di persone reali, tutto gratis.