API REST

API REST

Media

Instrucciones

Implementa una API RESTful para llevar un registro de IOUs.

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

Tu tarea es implementar una API RESTful sencilla que reciba IOUs como peticiones POST y pueda proporcionar la información resumida que se especifica mediante peticiones 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 de la carga útil Respuesta sin carga útil Respuesta con carga útil
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 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)>}

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 para ella si no se pasa ningún argumento).

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

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

¿Listo para empezar API REST?

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