REST API

REST API

Intermedia

Instrucciones

Implementa una API RESTful para llevar un registro de deudas.

Cuatro compañeros de cuarto tienen la costumbre de prestarse dinero entre ellos con frecuencia y les cuesta recordar quién le debe a quién y cuánto.

Tu tarea es implementar una API RESTful simple que reciba deudas como solicitudes POST y que pueda entregar la información de resumen especificada mediante solicitudes GET.

Especificación de la API

Objeto de usuario

{
  "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étodos

Descripción Método HTTP URL Formato del payload Respuesta sin payload Respuesta con payload
Lista de información de usuarios GET /users {"users":["Adam","Bob"]} {"users":<List of all User objects>} {"users":<List of User objects for <users> (sorted by name)}
Crear usuario POST /add {"user":<name of new user (unique)>} N/A <User object for new user>
Crear deuda 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)>}

Otros recursos

Implementación

Implementa los métodos get y post de la clase RestAPI.

Solo debes escribir las funciones manejadoras, sin implementar un servidor HTTP real. Puedes simular la base de datos con un objeto en memoria que contenga todos los usuarios almacenados. El constructor de la clase RestAPI debe aceptar una instancia de esta base de datos como argumento (y establecer un valor predeterminado si no se pasa ningún argumento).

Para esta implementación, en el caso de una petición GET, los datos deben formar parte de la URL y se deben manejar como parámetros de consulta, por ejemplo /users?users=Adam,Bob.

Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
JavaScript Exercism

¿Todo listo para empezar REST API?

Regístrate en Exercism para aprender y dominar JavaScript con 37 conceptos159 ejercicios y mentoría humana real, todo gratis.