Skip to content

API REST construída para administração de usuários. Conta com senhas criptografadas, autenticação via JWT e sistema de autorização RBAC. (Início da carreira, está obsoleto)

Notifications You must be signed in to change notification settings

gcboaventura/api-rest-crud-de-usuarios

Repository files navigation

banner

GitHub repo size GitHub language count GitHub top language GitHub last commit GitHub issues

Tabela de conteúdos

Sobre

Trata-se de uma Rest API que realiza as funções básicas de um crud de usuários, sendo cadastro, listagem, edição e exclusão.

A mesma conta com sistema de autenticação com criptografia através do Bcrypt e emissão de tokens com o JWT.

Também foi utilizado a metodologia RBAC para ter o controle de acesso dos usuários por cargo. Atualmente a API possui regra de negócio que somente o usuário administrador pode fazer a inserção e demais alterações.

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disto é bom ter um editor para trabalhar com o código como VSCode e algum software para testar APIs como por exemplo o Insomnia ou Postamn.

Instalação

A instalação da API é bem simples, será necessário realizar as confiruações abaixo:

Clone o respositório

git clone https://github.com/gcboaventura/api-rest-crud-de-usuarios.git

Crie uma base de dados

Como já informado, precisamos que o MySQL esteja instalado em sua máquina. Será necessário criar uma base de dados com nome de sua preferência.

CREATE DATABASE CRUD;

Instale as dependências

Dependências são necessárias para que o projeto funcione perfeitamente. Abra o terminal e execute o comando a seguir:

npm install

Variáveis de ambiente

O projeto possui a dependência Dotenv, a mesma é necessária para confifurar as variáveis de ambiente. Na raiz do projeto, crie um arquivo ".env" e atribua as variáveis conforme abaixo:

# Atribua valores para as variáveis
# SERVER
serverPort_env = 4000

# DATABASE
hostDataBase_env = 
nameDataBase_env  = 
userDataBase_env  = 
passwordDataBase_env  = 
portDataBase_env  = 

# TOKEN
token_env = 

Regras de negócio

Conforme já informado, foi utilizando a metodologia RBAC para realizar o controle de acesso, portanto, somente o usuário cadastrado com cargo de 'administrador' consegue fazer as alterações na base de dados.

Rotas protegidas: Post, Patch e Delete.

A visualização é permitida para todos os usuários.

Como usar

  • Content type

A aplicação está configurada para aceitar requisições em formato JSON.

{
   "chave": "valor"
}
  • Token -Authorization

As rotas são protegidas com token, desta forma, o usuário que não esteja logado no sistema não irá conseguir visualizar ou realizar alterações no sistema.

Lembre-se de anexar ao header das requisições o Authorization: token fornecido e a classificação Content-type: application/json.

gif

Rodando o projeto

Após todas as configurações realizadas, execute o comando a seguir para rodar o projeto:

npm run dev

# Será impresso no console as variáveis de ambiente e as informaçõe sobre criação de tabelas e usuário administrador.

gif

Login

Com a aplicação em funcionamento, efetue o login com os dados abaixo:

# Rota http://localhost:4000/Login  - Método: POST

{
	"email":"[email protected]",
	"senha":"admin"
}

# Será fornecido o token como resposta.

gif

Cadastrar Usuário

Para cadastrar um usuário, faça o seguinte:

# Rota http://localhost:4000/User  - Método: POST
# Exemplo de usuário

  {
	"nome":"Maria",
	"email":"[email protected]",
	"senha":"senhaDaMaria",
	"telefone":"011999999999",
	"setor":"Vendas",
	"cargo":"Vendedora"
  }

# A respota será as informações cadastradas.

gif

Visualizar todos os usuários

Para visualizar todos os usuários, faça o seguinte:

# Rota http://localhost:4000/User  - Método: GET

# A respota será todos os usuários cadastrados.

gif

Filtrar usuário por ID

Para visualizar um usuário em específico, será necessário passar o ID como parâmetro. Faça da seguinte forma:

# Rota http://localhost:4000/User/:id  - Método: GET

# A respota será o usuário.

gif

Editar informações do usuário

Para editar as informações do usuário, será necessário indentificá-lo pelo ID. Faça da seguinte forma:

# Rota http://localhost:4000/User/:id  - Método: PATCH

{
	"nome":"Joao",
	"email":"[email protected]",
	"senha":"senhaDoJoao",
	"telefone":"011999999999",
	"setor":"Consultoria",
	"cargo":"Consultor"
}

# A resposta será uma mensagem de sucesso.
{
  "message": "Success."
}

gif

Excluindo usuário

Para excluir um usuário, será necessário indentificá-lo pelo ID. Faça da seguinte forma:

# Rota http://localhost:4000/User/:id  - Método: DELETE

# A resposta será uma mensagem de sucesso.
{
  "message": "Success."
}

gif

Logs

Todas as alterações no sistema são monitoras por logs. Para visualizar todos os registros, acesse sua base no MySQL e execute o seguinte comando:

SELECT * FROM LOG;
# Será listado todos os registros até o momento

log

Tecnologias

Dependências

Autor

autor

Guilherme de Carvalho Boaventura

Me siga nas redes sociais !

Licença

The MIT License (MIT)

Copyright (c) 2021 Guilherme de Carvalho Boaventura

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.

About

API REST construída para administração de usuários. Conta com senhas criptografadas, autenticação via JWT e sistema de autorização RBAC. (Início da carreira, está obsoleto)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published