Implemente uma API RESTful para acompanhar IOUs.
Quatro colegas de quarto costumam pegar dinheiro emprestado uns com os outros com frequência e têm dificuldade para lembrar quem deve a quem e quanto.
Sua tarefa é implementar uma API RESTful simples que recebe IOUs como requisições POST e consegue fornecer informações resumidas específicas por meio de requisições 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ções de usuários | GET | /users | {"users":["Adam","Bob"]} |
{"users":<List of all User objects>} |
{"users":<List of User objects for <users> (sorted by name)} |
| Criar usuário | 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)>} |
Implemente os métodos get e post da classe RestAPI.
Você deve escrever apenas as funções handler, sem implementar um servidor HTTP de verdade.
Você pode simular o banco de dados com um objeto em memória que vai conter todos os usuários armazenados.
O construtor da classe RestAPI deve aceitar uma instância desse banco de dados como argumento (e definir um valor padrão para ela caso nenhum argumento seja passado).
Para esta implementação, no caso de uma requisição GET, o payload deve fazer parte da URL e deve ser tratado como parâmetros de consulta, por exemplo /users?users=Adam,Bob.
Crie sua conta no Exercism para aprender e dominar JavaScript com 37 conceitos159 exercícios e mentoria humana de verdade, tudo de graça.