API REST

API REST

Moyen

Instructions

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.

Spécification de l'API

Objet utilisateur

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

Méthodes

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

Autres ressources

Implémentation

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.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
JavaScript Exercism

Prêt à commencer API REST ?

Inscris-toi sur Exercism pour apprendre et maîtriser JavaScript avec 37 concepts159 exercices, et un vrai mentorat humain, le tout gratuitement.