API RESTful simples para gerenciamento de tarefas (to-do list), construída com FastAPI e persistência de dados em arquivo JSON.
O TaskForce API é uma API desenvolvida para praticar os conceitos de FastAPI, oferecendo operações básicas de um CRUD de tarefas:
- Criar tarefas
- Listar tarefas
- Marcar/desmarcar tarefas como concluídas
- Deletar tarefas
Os dados são armazenados localmente em um arquivo task.json, sem a necessidade de configurar um banco de dados externo — ideal para estudo e testes rápidos.
- Python 3
- FastAPI — framework web para construção da API
- Uvicorn — servidor ASGI
- Pydantic — validação de dados
- Armazenamento em JSON (sem banco de dados)
TaskForce_api/
├── api/
│ └── apiTask.py # Rotas/endpoints da API
├── classes/
│ └── Classes.py # Modelo (schema) da tarefa (Pydantic)
├── util/
│ └── jsonFile.py # Lógica de leitura/escrita no arquivo JSON
├── main.py # Ponto de entrada da aplicação
├── requeriments.txt # Dependências do projeto
└── README.md
git clone https://github.com/GoomezCode/TaskForce_api.git
cd TaskForce_apipython -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activatepip install -r requeriments.txtpython main.pyA API estará disponível em:
http://localhost:8000
A documentação interativa (Swagger UI) gerada automaticamente pelo FastAPI pode ser acessada em:
http://localhost:8000/docs
| Método | Rota | Descrição |
|---|---|---|
GET |
/task/get |
Lista todas as tarefas cadastradas |
POST |
/task/create/{task} |
Cria uma nova tarefa |
PUT |
/task/put/marcar/{idTask} |
Marca/desmarca uma tarefa como concluída |
DELETE |
/task/delete/{idTask} |
Remove uma tarefa pelo ID |
POST /task/create/Estudar%20FastAPIGET /task/getResposta:
[
{
"id": 1,
"tarefa": "Estudar FastAPI",
"feito": false,
"data": "06/07/26",
"hora": "14:32:10"
}
]PUT /task/put/marcar/1DELETE /task/delete/1As tarefas são salvas automaticamente no arquivo pathJson/task.json, criado na primeira execução da API. Não é necessário configurar nenhum banco de dados.
- Migrar a persistência de dados para um banco de dados relacional (ex: SQLite/PostgreSQL)
- Adicionar autenticação de usuários
- Adicionar testes automatizados
- Adicionar suporte a edição do texto da tarefa
- Tratar melhor os erros de validação de entrada
Desenvolvido por GoomezCode.