Projeto API em Node.js com Sequelize e MySQL, desenvolvido para o gerenciamento de produtos, usuários e categorias.
Aluno: Fabiano Souza de Oliveira
RA: 8093500
- Node.js: Ambiente de execução JavaScript.
- Express: Framework web para Node.js.
- Sequelize: ORM para manipulação de banco de dados.
- MySQL: Banco de dados relacional.
-
Clone o repositório: Para clonar o repositório e navegar até a pasta do projeto, execute:
git clone https://github.com/fsouzaweb/unimar-api-nodejs && cd unimar-api-nodejs
-
Instale as dependências: Instale todas as dependências do projeto listadas no
package.json
:npm install
-
Configuração do Banco de Dados:
Crie um banco de dados MySQL e configure as variáveis no arquivo
.env
para que o Sequelize possa se conectar corretamente. Exemplo de configuração do arquivo.env
:# JWT Secret JWT_SECRET=sua_chave_secreta # Database MySQL DB_USERNAME=root DB_PASSWORD=sua_senha DB_NAME=nodejs_unimar_db DB_HOST=127.0.0.1 DB_DIALECT=mysql
- DB_USERNAME: Usuário do banco de dados MySQL.
- DB_PASSWORD: Senha do banco de dados MySQL.
- DB_NAME: Nome do banco de dados.
- DB_HOST: Endereço do banco de dados (localhost por padrão).
- DB_DIALECT: Dialeto do banco de dados (MySQL neste caso).
- JWT_SECRET: Chave secreta para geração de tokens JWT (necessária para autenticação).
-
Execute as Migrações: As migrações do Sequelize criarão as tabelas necessárias no banco de dados. Execute:
npx sequelize db:migrate
-
(Opcional) Popular o Banco com Dados Iniciais: Se desejar, você pode executar os seeders para popular o banco de dados com dados iniciais:
npx sequelize db:seed:all
Para iniciar o servidor Node.js:
npm start
O projeto estará acessível em http://localhost:3000
por padrão.
controllers
: Contém os controladores das rotas que gerenciam a lógica de negócio.models
: Contém os modelos Sequelize que representam as tabelas do banco de dados.routes
: Define as rotas da API, cada rota é associada a uma ação nos controladores.config
: Configurações do banco de dados, incluindo o arquivoconfig.js
usado pelo Sequelize.migrations
: Arquivos de migração do Sequelize, usados para criar, atualizar ou remover tabelas.seeders
: Arquivos para popular o banco de dados com dados iniciais, úteis para testes.
Aqui estão as principais rotas da API:
-
Criar Usuário
POST/users/new_user
Cria um novo usuário. Envie um JSON comname
,email
,user
epass
. -
Login de Usuário
POST/users/login
Realiza o login de um usuário. Envie um JSON comuser
epass
. Retorna um token JWT se as credenciais estiverem corretas.
-
Listar Produtos
GET/products
Lista todos os produtos disponíveis, incluindo a categoria associada. -
Criar Produto
POST/products
Cria um novo produto. Envie um JSON com as informações do produto. -
Atualizar Produto
PUT/products/:id
Atualiza um produto específico pelo ID. Envie os novos dados em JSON.
-
Verificar Conexão com o Banco de Dados: Certifique-se de que o MySQL está em execução e que o Sequelize consegue se conectar usando as credenciais do arquivo
.env
. -
Testar Endpoints com Insomnia ou Postman: Use ferramentas como Insomnia ou Postman para testar os endpoints da API e verificar as respostas JSON.
-
Logs de Erro: Ao iniciar o servidor, verifique o console para logs de erro ou mensagens, especialmente para problemas de autenticação ou conexão com o banco de dados.
-
Atualização de Dados: Após realizar atualizações de dados com sucesso, confirme a atualização usando um endpoint GET correspondente ou inspecionando diretamente o banco de dados.
Para dúvidas e sugestões, entre em contato com Fabiano Souza de Oliveira (RA: 8093500).
Esse `README.md` contém instruções detalhadas para clonar o repositório, instalar dependências, configurar o banco de dados, executar o projeto e testar os endpoints da API, além de dicas úteis para desenvolvimento.