Uma API RESTful no backend para gerenciamento de contatos, com autenticação por JWT.
Esta é uma API RESTful desenvolvida com Node.js e Express que permite:
- Autenticação de Usuários: Cadastro, login e validação com JWT.
- Gestão de Contatos: Operações de CRUD (Criar, Ler, Atualizar e Deletar) para contatos, vinculados a cada usuário autenticado.
- Segurança: Senhas criptografadas com Bcrypt.
- Testes: Endpoints prontos para serem testados com o REST Client (VS Code).
- Node.js e Express: Ambiente de execução e framework web.
- MongoDB e Mongoose: Banco de dados NoSQL e seu ODM.
- JWT (JsonWebToken): Padrão para autenticação.
- Bcrypt: Para criptografia de senhas.
- dotenv: Gerenciamento de variáveis de ambiente.
- REST Client: Extensão do VS Code para testes de requisições HTTP.
- Git e GitHub: Controle de versão.
- README.md: Documentação do projeto e das requisições pelo client.rest.
A estrutura de pastas foi organizada para separar as responsabilidades e facilitar a manutenção e escalabilidade.
config/: Contém a lógica de conexão com o MongoDB usando Mongoose.controllers/: Gerencia a lógica de negócio da aplicação, como a manipulação de dados de usuários e contatos.middleware/: Responsável por funções que interceptam as requisições, como a validação do token JWT e o tratamento de erros.models/: Define os esquemas de dados (Schemas Mongoose) para usuários e contatos.routes/: Organiza todas as rotas da API (rotas públicas, privadas e protegidas).requests/: Contém os arquivos.restpara realizar testes de endpoints de forma isolada e prática.server.js: O arquivo principal que inicializa o servidor, carrega os middlewares e as rotas.
Siga os passos abaixo para clonar e rodar o projeto em sua máquina.
-
Clone o repositório:
git clone <URL_DO_MEU_REPOSITORIO>
-
Instale as dependências:
npm install
-
Configure as variáveis de ambiente: Crie um arquivo
.envna raiz do projeto e adicione suas credenciais:PORT=3000 CONNECT_STRING= sua-string-mongodb -
Inicie o servidor:
npm run dev
O sistema foi configurado para ser testado facilmente com o REST Client do VS Code. Para isso, é essencial ler a documentação dentro da pasta requests.
- Abra a pasta
requestsno VS Code. - Clique nos arquivos
.restpara visualizar os endpoints. - Siga as instruções para usar as variáveis de ambiente e testar o fluxo de autenticação e as operações de CRUD.
- Documentação com UI através do
Swagger, além do Rest Client🎯.