Este projeto implementa uma API RESTful utilizando o framework Express.js, consolidando as funcionalidades dos projetos anteriores em uma única aplicação organizada e modular. O foco principal é demonstrar a estruturação de uma aplicação Express.js com rotas separadas, middlewares e controladores.
- express.Router(): Organização de rotas em arquivos separados
- Middlewares: Implementação e uso de middlewares personalizados
- Estrutura de Rotas Separadas: Separação de responsabilidades por domínio
- Controladores: Implementação da lógica de negócio em controladores específicos
- Serviços Compartilhados: Reutilização de código através de serviços
- Node.js instalado (versão 12.x ou superior)
- Clone o repositório
- Navegue até a pasta do projeto:
cd app06 - Instale as dependências:
npm install
- Para iniciar o servidor normalmente:
npm start - Para iniciar o servidor com recarga automática (desenvolvimento):
npm run dev
O servidor estará rodando em http://localhost:3000
app06/
├── src/
│ ├── middlewares/ # Middlewares personalizados
│ │ ├── logger.js # Middleware de logging
│ │ ├── errorHandler.js # Middleware de tratamento de erros
│ │ └── notFound.js # Middleware para rotas não encontradas
│ ├── routes/ # Rotas da aplicação
│ │ ├── index.js # Arquivo principal de rotas
│ │ ├── tarefasRoutes.js # Rotas para tarefas
│ │ ├── frasesRoutes.js # Rotas para frases
│ │ └── livrosRoutes.js # Rotas para livros
│ ├── controllers/ # Controladores
│ │ ├── tarefasController.js # Controlador de tarefas
│ │ ├── frasesController.js # Controlador de frases
│ │ └── livrosController.js # Controlador de livros
│ ├── services/ # Serviços compartilhados
│ │ └── fileService.js # Serviço para manipulação de arquivos
│ ├── utils/ # Utilitários
│ │ └── responseFormatter.js # Formatador de respostas
│ └── app.js # Arquivo principal da aplicação
├── public/ # Arquivos estáticos
│ ├── css/ # Estilos CSS
│ ├── js/ # Scripts JavaScript
│ └── index.html # Página inicial
├── data/ # Arquivos de dados
│ ├── tarefas.json # Dados de tarefas
│ ├── frases.json # Dados de frases
│ └── livros.json # Dados de livros
├── package.json # Metadados e dependências
└── README.md # Documentação
GET /api/tarefas- Listar todas as tarefasGET /api/tarefas/:id- Obter uma tarefa específicaPOST /api/tarefas- Criar uma nova tarefaPUT /api/tarefas/:id- Atualizar uma tarefa existenteDELETE /api/tarefas/:id- Remover uma tarefa
GET /api/frases- Listar todas as frasesGET /api/frases/aleatoria- Obter uma frase aleatóriaGET /api/frases/:id- Obter uma frase específicaPOST /api/frases- Criar uma nova frasePUT /api/frases/:id- Atualizar uma frase existenteDELETE /api/frases/:id- Remover uma frase
GET /api/livros- Listar todos os livrosGET /api/livros/busca?q=termo- Buscar livros por termoGET /api/livros/:id- Obter um livro específicoPOST /api/livros- Criar um novo livroPUT /api/livros/:id- Atualizar um livro existenteDELETE /api/livros/:id- Remover um livro
A documentação completa da API está disponível em /api/docs quando o servidor estiver em execução.
- Abstração de complexidades: Simplifica o desenvolvimento de aplicações web
- Organização de código: Facilita a estruturação do projeto
- Middlewares: Sistema flexível para processamento de requisições
- Roteamento: Sistema de roteamento intuitivo e poderoso
- Ecossistema: Ampla variedade de plugins e extensões disponíveis
- Performance: Otimizado para aplicações web em Node.js
- Implementar autenticação e autorização
- Integrar com banco de dados
- Adicionar testes automatizados
- Implementar documentação interativa com Swagger