Implementa uma API RESTful para registar IOUs.
Quatro colegas de casa têm o hábito de pedir dinheiro emprestado uns aos outros com frequência, e têm dificuldade em lembrar-se de quem deve a quem, e quanto.
A tua tarefa é implementar uma API RESTful simples que recebe IOUs como pedidos POST e consegue devolver informação de resumo específica através de pedidos 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)>"
}
| Descrição | Método HTTP | URL | Formato do payload | Resposta sem payload | Resposta com payload |
|---|---|---|---|---|---|
| Lista de informação dos utilizadores | GET | /users | {"users":["Adam","Bob"]} |
{"users":<List of all User objects>} |
{"users":<List of User objects for <users> (sorted by name)} |
| Criar utilizador | POST | /add | {"user":<name of new user (unique)>} |
N/A | <User object for new user> |
| Criar 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)>} |
Implementa os métodos get e post da classe RestAPI.
Deves escrever apenas as funções de tratamento, sem implementar um servidor HTTP real.
Podes simular a base de dados com um objeto em memória que vai conter todos os utilizadores armazenados.
O construtor da classe RestAPI deve aceitar uma instância desta base de dados como argumento (e definir um valor predefinido para ela se não for passado nenhum argumento).
Para esta implementação, no caso de um pedido GET, a carga útil deve fazer parte do URL e deve ser tratada como parâmetros de consulta, por exemplo /users?users=Adam,Bob.
Inscreve-te no Exercism para aprenderes e dominares JavaScript com 37 conceitos159 exercícios, e mentoria humana real, tudo grátis.