Este é um projeto de API RESTful robusta, modular e segura,, utilizando a stack Node.js com JavaScript, integrada a um banco de dados relacional MySQL, com mapeamento de dados feito por meio do Sequelize.
O sistema foi projetado para refletir a estrutura de um backend de aplicação real, com foco em organização de código, segurança, modularidade e facilidade de escalabilidade.
Última Atualização: 05 Jun. 2025
- Javascript # Linguagem utilizada
- Node.js # Ambiente de execução de JavaScript no servidor
- Express.js # Framework web para APIs RESTful
- MySQL # Banco de dados relacional
- Sequelize # Abstração e manipulação de dados
- bcryptjs # Criptografia de senhas
- JWT # Autenticação com tokens seguros
- Swagger # Documentação interativa da API
productsystemapi_/
│-- src/
│ ├── config/ # Configurações do projeto (DB, .env, etc.)
│ ├── controllers/ # Lógica de controle de cada rota
│ ├── docs/ # Documentação Swagger
│ ├── errors/ # Erros, logs com mensagens e status
│ ├── middlewares/ # Autenticação
│ ├── models/ # Entidades do Sequelize (tabelas do banco)
│ ├── routes/ # Rotas da API agrupadas por módulo
│ ├── utils/ # Links do hypermidia
│ ├── server.js # Inicialização do servidor
-
Clone o repositório
git clone git@github.com:function404/productsystemapi_.git
-
Instalar dependências
npm install
-
Iniciar servidor
npm start
Servidor rodando em: http://localhost:3001
⚠️ Rodar o XAMPP com o MYSQL ativo e com o banco de dados informado criado.
❗O servidor rodará na porta 3001 por padrão.
POST /register
– Cadastro de novo usuárioPOST /login
– Login e retorno do token JWT
GET /api/users
– Listar todos os usuáriosGET /api/users/:id
– Buscar usuário por IDPOST /api/users
- Cadastro de novo usuárioPUT /api/users/:id
– Atualizar usuárioDELETE /api/users/:id
– Deletar usuário
GET /api/categories
– Listar todas as categoriasGET /api/categories/:id
– Buscar categorias por IDPOST /api/categories
– Cadastro de nova categoriasPUT /api/categories/:id
– Atualizar categoriasDELETE /api/categories/:id
– Deletar categorias
GET /api/products
– Listar todos os produtosGET /api/products/:id
– Buscar produto por IDPOST /api/products
– Cadastro de novo produtoPUT /api/products/:id
– Atualizar produtoDELETE /api/products/:id
– Deletar produto
GET /api/orders/user
– Listar todos as pedidos do usuário autenticadoGET /api/orders/:id
– Buscar pedido por IDPOST /api/orders
– Criação de um pedidoDELETE /api/orders/:id
– Deletar pedido
Todos os endpoints (exceto
/register
e/login
) exigem token JWT válido.
Recomenda-se o uso do Postman para testar os endpoints. Crie uma nova requisição, adicione o token JWT no campo de headers:
Authorization: Bearer <seu_token>
Projeto desenvolvido para fins educacionais e pode ser utilizado livremente para estudos.