Criação de api com base no desafio abaixo:
Crie um aplicativo backend que irá expor uma API RESTful de SingUp/SignIn e Consulta de Usuário. Todos os endpoints devem somente aceitar e somente enviar JSONs. O servidor deverá retornar JSON para os casos de endpoint não encontrado também. O aplicativo deverá persistir os dados (ver detalhes em requisitos).
Todas as respostas de erro devem retornar o objeto:
{ "mensagem": "mensagem de erro" } Prazo-
• 3 dias corridos.
SignUp
• Endpoint: /usuarios/signup
• Este endpoint deverá receber um usuário com os seguintes campos: nome,
email, senha e uma lista de objetos telefone. Seguem os modelos:
{
"nome": "string",
"email": "string",
"senha": "senha",
"telefones": [
{
"numero": "123456789",
"ddd": "11"
}
}
Usar status codes de acordo
• Em caso de sucesso irá retornar a seguinte estrutura:
{
"id": "string",
"nome": "string",
"email": "string",
"data_criacao": "string",
"data_atualizacao": "string",
"ultimo_login": "string",
"token": "string"
}
• id: id do usuário (pode ser o próprio gerado pelo banco, porém seria
interessante se fosse um GUID)
• nome: nome do usuário
• email: email do usuário
• data_criacao: data da criação do usuário
• data_atualizacao: data da última atualização do usuário
• ultimo_login: data do último login (no caso da criação, será a mesma que a
criação)
• token: token de acesso da API (pode ser um GUID ou um JWT)
• Caso o e-mail já exista, deverá retornar erro com a mensagem "E-mail já
existente".
• O token deverá ser persistido junto com o usuário
- Endpoint: /usuarios/signin
- Este endpoint irá receber um objeto com e-mail e senha. { "email": "string", "senha": "string" }
- Caso o e-mail exista e a senha seja a mesma que a senha persistida:
- gerar um novo token
- alterar a data do último login
- persistir no banco de dados
- retornar o mesmo objeto retornado no endpoint do SignUp.
- Caso o e-mail não exista, retornar erro com status apropriado mais a mensagem "Usuário e/ou senha inválidos"
- Caso o e-mail exista mas a senha não bata, retornar o status apropriado 401 mais a mensagem "Usuário e/ou senha inválidos”