API RESTful de criação de sing up/sign in e controle de acesso por lista
- NodeJS - JavaScript runtime
- MongoDB - banco de dados nosql
- bcrypt - criptografia de senha não reversível
- JWT - token de seção
- Express - framework Node.JS
- Nodemon - reinicialização da api a cada mudança
- Jest - testes unitários e cobertura de código
- ESLint - identificação de padrões problemáticos presentes no código
- Prettier - formatação o código de modo a manter um padrão estético
- Yarn - gerenciador de pacotes
- .editorconfig - padronização de configuração de editores (IDEs)
- cross-env - definição de variáveis de ambiente independente de sistema operacional
Para executar cada script abaixo, você precisará do Yarn.
Após instalá-lo, utilize yarn <nome do script>. Ex: yarn start.
start- inicializa a apiserver- inicializa a api vianodemoncom parâmetros de debugserver:test- inicializa a api vianodemoncom parâmetros de debug no bd de testeeslint- identifica corrige padrões problemáticos presentes no códigotest- executa os testes unitários e gera relatório de cobertura de códigomigrate- executa o comandomigrate-mongo(necessário utilizar parâmetros)migrate:reset- reinicializa o banco de dados de testes via migrationspretest- executado automaticamente antes do scripttest
-
GET /api/user- Obter dados básicos do usuário -
POST /api/user/signup- Registrar usuário-
Body
nome- obrigatótio - nome do usuárioemail- obrigatótio - email do usuáriosenha- obrigatótio - senha do usuário
Ex:
{ "nome": "Fulano de Tal", "email": "fulanodetal@gmail.com", "senha": "123456" }
-
-
POST /api/user/signin- Autenticar usuário e obter token-
Body
email- e-mail do usuáriosenha- senha utilizada no cadastro
Ex:
{ "email": "fulanodetal@gmail.com", "senha": "123456" }
-
-
POST /api/user/signout- Desconectar usuário- Header
-
Authorization (obrigatório, Bearer token)
Ex:
Authorization: Bearer <token>
-
- Header
Todos os endpoints desta família necessitam que o token obtido no signin seja enviado no parâmetro Authorization cabeçalho, como um Bearer token.
Ex:
Authorization: Bearer <token>-
GET /api/profile/me- Obter perfil do usuário atual -
POST /api/profile- Criar ou atualizar o perfil do usuário-
Body
telefones- obrigatório - lista de números de telefonenumero- número de telefoneddd- ddd do número de telefone
endereco- endereço do usuáriologradouro- nome da rua/avenida/alameda etc.numero- número do localcep- Código de Endereçamento Postal
papel- nível de acessoadminouuser
Ex:
{ "telefones": [ { "numero": "40041234", "ddd": "11" } ], "endereco": { "logradouro": "teste", "numero": 1, "cep": "012345-678" }, "papel": "admin" }
-
-
GET /api/profile/all- Obter todos os perfis - somente acessível por admin -
GET /api/profile/user/:user_id- Obter o perfil do usuário pelo seu id - somente acessível por admin -
DELETE /api/profile- Excluir perfil e respectivo usuário