API REST desenvolvida em Node.js com TypeScript para gerenciar elementos do universo Star Wars. O projeto permite que usuários criem e gerenciem personagens, naves espaciais, planetas e sistemas estelares.
- 🔐 Autenticação: Sistema completo de registro e login de usuários
- 👥 Personagens: Criação e gestão de personagens com raças e afiliações
- 🚀 Naves: Cadastro de naves espaciais com detalhes técnicos
- 🌍 Planetas: Gerenciamento de planetas com clima e terreno
- 🌌 Sistemas: Organização de planetas em sistemas estelares
- 📝 Documentação: API documentada com Swagger UI
- Node.js
- TypeScript
- Express
- Prisma ORM
- MySQL
- JWT
- Swagger UI
- Node.js
- MySQL
- NPM para o gerenciamentos de pacotes
-
Clone o repositório
git clone https://github.com/lucca16bit/express-desafio-backend-fusion.git cd express-desafio-backend-fusion -
Instale as dependências
npm install
-
Configure as variáveis de ambiente
cp .env.example .env
-
Configure o banco de dados
npx prisma migrate dev npx prisma generate
npm run dev: Inicia o servidor em modo desenvolvimentonpm run build: Compila o TypeScriptnpm start: Inicia o servidor em produçãonpm run lint: Executa o linting do código
- POST /auth/register: Registro de usuário
- POST /auth/login: Login de usuário
- GET /users/me: Perfil do usuário
- PUT /users/me: Atualiza usuário
- DELETE /users/me: Remove usuário
- POST /characters: Cria personagem
- GET /characters: Lista personagens
- GET /characters/:id: Busca personagem
- PUT /characters/:id: Atualiza personagem
- DELETE /characters/:id: Remove personagem
- POST /spaceships: Cria nave
- GET /spaceships: Lista naves
- GET /spaceships/:id: Busca nave
- PUT /spaceships/:id: Atualiza nave
- DELETE /spaceships/:id: Remove nave
- POST /planets: Cria planeta
- GET /planets: Lista planetas
- GET /planets/:id: Busca planeta
- PUT /planets/:id: Atualiza planeta
- DELETE /planets/:id: Remove planeta
- POST /systems: Cria sistema
- GET /systems: Lista sistemas
- GET /systems/:id: Busca sistema
- PUT /systems/:id: Atualiza sistema
- DELETE /systems/:id: Remove sistema
A API utiliza autenticação via JWT tokens armazenados em cookies.
A documentação completa da API está disponível em:
http://localhost:3000/api-docs