API REST para gerenciamento de clientes com autenticação JWT, arquitetura em camadas e deploy em nuvem.
Node.js • Express • PostgreSQL • JWT • bcrypt • Render • Neon
- Autenticação (registro e login)
- CRUD de clientes
- Rotas protegidas com JWT
- Relacionamento usuário ↔ clientes
- Acesso isolado por usuário
- FOREIGN KEY com
ON DELETE CASCADE
src/
├── config/
├── controllers/
├── services/
├── routes/
└── middlewares/npm install.env
DATABASE_URL=postgresql://postgres:SENHA@localhost:5432/treino_db
JWT_SECRET=sua_frase_secreta
sql
CREATE TABLE usuarios (
id SERIAL PRIMARY KEY,
email VARCHAR(100) UNIQUE,
senha VARCHAR(255)
);
CREATE TABLE clientes (
id SERIAL PRIMARY KEY,
nome VARCHAR(100),
telefone VARCHAR(20),
usuario_id INT REFERENCES usuarios(id) ON DELETE CASCADE
);
npm startAuth
- POST
/auth/registro - POST
/auth/login
Clientes (JWT)
- GET
/clientes - POST
/clientes - PUT
/clientes/:id - DELETE
/clientes/:id
- bcrypt (hash de senha)
- JWT com expiração
- Prepared Statements
.envprotegido
- 100 requisições por IP a cada 15 minutos
- Excedeu → erro 429
Acesse em: https://api-clientes-jqkq.onrender.com
API desenvolvida para simular um sistema real de gerenciamento de clientes, com autenticação segura e estrutura escalável.
