Esse é um projeto de criação de uma API RESTfull, utilizando as tecnologias principais o Node.js, Express.js, MongoDB, Mongoose,JWT, Jest, Gulp e JsHint, hospedado no Render.com e no Railway.app.
Desenvolver uma API RESTful para autenticação de usuários, que permita operações de cadastro (sign up), autenticação (sign in) e recuperação de informações do usuário.
POST /usuario/cadastro
Header | Valor | Descrição |
---|---|---|
- |
- |
- |
Parâmetro | Tipo | Descrição |
---|---|---|
nome |
string |
Obrigatório. |
email |
string |
Obrigatório. |
senha |
string |
Obrigatório. |
telefones |
array |
Obrigatório. Deve ser do tipo: {"numero": string, "ddd": string} |
✅ SUCESSO ✅ - Retorna os dados do usuário cadastrado (id, data da criação, data de atualização, ultimo login e um token).
❌ ERRO ❌ - Caso tenha um e-mail já cadastrado igual ao que o usuário informou no cadastro, a mensagem a seguir é exibida: { mensagem: 'E-mail já existente.' }
POST /usuario/login
Header | Valor | Descrição |
---|---|---|
- |
- |
- |
Parâmetro | Tipo | Descrição |
---|---|---|
email |
string |
Obrigatório. Email cadastrado anteriormente |
senha |
string |
Obrigatório. Senha cadastrada anteriormente |
✅ SUCESSO ✅ - Retorna os dados do usuário cadastrado (id, data da criação, data de atualização, ultimo login e um token).
❌ ERRO ❌ - Caso a senha e/ou e-mail fornecidos sejam incorreto, a mensagem a seguir é exibida: { mensagem: 'Usuário e/ou senha inválidos' }
GET /usuarios/buscar
Header | Valor | Descrição |
---|---|---|
Authentication |
Bearer {token} |
Token do usuário |
Parâmetro | Tipo | Descrição |
---|---|---|
- |
- |
- |
✅ SUCESSO ✅ - Retorna os dados do usuário cadastrado (id, data da criação, data de atualização, ultimo login e o token).
❌ ERRO ❌ - Caso o token tenha passado de seu tempo: { mensagem: 'Sessão inválida - Token expirado' }
Importando a API, que está disponivel no Drive.
- Persistência de dados
- Sistema de build com gerenciamento de dependências.
- Task runner para build.
- Padronização de estilo (ex: jsHint/jsLint).
- Framework: Express, Hapi, ou similar.
- JWT como token.
- Testes unitários.
- Criptografia hash na senha e token.
Deploy realizado no Render e também na Railway, com a finalidade de evitar adversidades.
Em meus testes o Railway se mostrou mais estável, dê preferência a ele.
API rodando na URL: https://crud-estribo.onrender.com/ e também na https://crudescribo.up.railway.app/
Exemplo de utilização: https://crud-estribo.onrender.com/usuario/cadastro ou https://crudescribo.up.railway.app/usuario/cadastro
O cabeçalho (header) e o corpo (body) da requisição devem ser fornecidos para realizar a solicitação. As solicitações podem ser testadas por meio de um framework para desenvolvimento/teste de API Clients. O Postman e o Insomnia são dois ótimos exemplos. Para este caso, utilizei o Insomnia. O arquivo de importação no insomnia para realizar os testes está no Drive tanto para a URL do Railway quanto Render.