Documentação da API de Voos
Visão Geral
Esta API foi desenvolvida para gerenciar usuários, companhias aéreas e cotações de milhas
aéreas. Ela oferece endpoints para autenticação, CRUD de usuários e companhias aéreas, além
de processamento de webhooks para integração com sistemas de pagamento.
Tecnologias Utilizadas
- [Link]: Ambiente de execução JavaScript
- Express: Framework para construção da API
- Sequelize: ORM para interação com o banco de dados
- MariaDB: Banco de dados relacional
- JWT: Autenticação via tokens
- Multer: Upload de arquivos (logos das companhias aéreas)
- Dotenv: Gerenciamento de variáveis de ambiente
Estrutura do Projeto
api/
■■■ config/
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■■■ controllers/
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■■■ migrations/
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■■■ models/
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■ ■■■ [Link]
■■■ seeders/
■ ■■■ [Link]
■ ■■■ [Link]
■■■ .env
■■■ .gitignore
■■■ [Link]
■■■ [Link]
■■■ [Link]
■■■ [Link]
■■■ [Link]
Configuração
Variáveis de Ambiente:
Crie um arquivo .env na raiz do projeto com as variáveis necessárias.
Instalação:
1. Clone o repositório.
2. Instale as dependências: npm install
3. Execute as migrações: npm run migrate
4. Popule o banco com dados iniciais: npm run seed
5. Inicie o servidor: npm run dev
Endpoints
Autenticação:
- POST /api/login: Autentica um usuário.
- POST /api/validate-email: Valida um email e retorna um token JWT.
Usuários:
- GET /api/admin/users: Lista todos os usuários (admin).
- GET /api/admin/users/:id: Detalhes de um usuário específico.
- PUT /api/admin/users/:id: Atualiza um usuário.
- DELETE /api/admin/users/:id: Remove um usuário.
Companhias Aéreas:
- GET /api/airlines: Lista todas as companhias aéreas.
- POST /api/admin/airlines: Cria uma nova companhia aérea.
- PUT /api/admin/airlines/:id: Atualiza uma companhia aérea.
- DELETE /api/admin/airlines/:id: Remove uma companhia aérea.
Cotações:
- POST /api/quote: Cria uma nova cotação.
Webhook:
- POST /webhook/kiwify: Processa webhooks da Kiwify.
Considerações Finais
- A API utiliza JWT para autenticação.
- Upload de logos via Multer.
- Banco de dados populado com seeders.
- Configurada para rodar na porta 3000.