Desenvolvimento de uma API REST robusta para gerenciamento de tarefas, construída sem o uso de frameworks (como Express ou Fastify), focando na utilização dos módulos nativos do Node.js.
- CRUD Completo: Gerenciamento do ciclo de vida das tarefas.
- Atualização de Status: Endpoint específico para marcação de tarefas concluídas.
- Processamento de Arquivos: Sistema de importação de tarefas via arquivo CSV, aplicando conceitos de Streams para eficiência de memória.
csv-parse— leitura do CSV na importação.
# Clone the repository
git clone https://github.com/peterhfss/node-native-api-tasks.git
cd node-native-api-tasks
# Install dependencies
pnpm install
# Start the server
pnpm run devO servidor sobe em http://localhost:3333.
> Importação CSV: ao iniciar, o script src/utils/import-csv.js lê src/assets/tasks-list.csv e envia cada linha como POST /tasks. Ou seja, cada arranque do servidor tende a criar novamente essas tarefas
| Method | Endpoint | Description |
|---|---|---|
| GET | /tasks |
Get all tasks |
| POST | /tasks |
Create new task |
| PUT | /tasks/:id |
Update task |
| PATCH | /tasks/:id/complete |
Toggle task status |
| DELETE | /tasks/:id |
Delete task |
nodejs-tasks-api/
├── db.json # Dados persistidos (JSON)
├── package.json
├── pnpm-lock.yaml
├── README.md
├── .gitignore
└── src/
├── server.js # Servidor HTTP e roteamento
├── routes.js # Definição das rotas e handlers
├── database.js # Camada de persistência (leitura/escrita em db.json)
├── middlewares/
│ └── json.js # Parse do corpo JSON
├── utils/
│ ├── build-route-path.js
│ ├── extract-query-params.js
│ └── import-csv.js # Importação CSV na subida do servidor
└── assets/
└── tasks-list.csv # Dados de exemplo para importação
Este projeto está sob a licença ISC. Veja o arquivo LICENSE para mais detalhes.