Implémente une API RESTful pour suivre les IOU.
Quatre colocataires ont l'habitude de s'emprunter de l'argent fréquemment, et ont du mal à se souvenir de qui doit quoi à qui, et combien.
Ta tâche est d'implémenter une API RESTful simple qui reçoit des IOU sous forme de requêtes POST, et peut fournir des informations récapitulatives spécifiées via des requêtes 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 | Méthode HTTP | URL | Format de la charge utile | Réponse sans charge utile | Réponse avec charge utile |
|---|---|---|---|---|---|
| Liste des informations utilisateur | GET | /users | {"users":["Adam","Bob"]} |
{"users":<List of all User objects>} |
{"users":<List of User objects for <users> (sorted by name)} |
| Crée un utilisateur | POST | /add | {"user":<name of new user (unique)>} |
N/A | <User object for new user> |
| Crée un IOU | 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)>} |
Implémente les méthodes get et post de la classe RestAPI.
Tu ne dois écrire que les fonctions de traitement, sans implémenter un vrai serveur HTTP. On peut simuler la base de données avec un objet en mémoire qui contiendra tous les utilisateurs stockés. Le constructeur de la classe RestAPI doit accepter une instance de cette base de données en argument (et définir une valeur par défaut si aucun argument n'a été passé).
Pour cette implémentation, dans le cas d'une requête GET, la charge utile doit faire partie de l'URL et être traitée comme des paramètres de requête, par exemple /users?users=Adam,Bob.
Inscris-toi sur Exercism pour apprendre et maîtriser JavaScript avec 37 concepts159 exercices, et un vrai mentorat humain, le tout gratuitement.