Este projeto é uma API de Gerenciamento de Tarefas construída com FastAPI. Ele permite a criação, leitura, atualização e exclusão de tarefas, além de autenticação de usuários.
app/main.py: Inicializa o servidor FastAPI e registra as rotas.app/routers/auth.py: Contém as rotas de autenticação, incluindo a criação de usuários e a geração de tokens.app/routers/tasks.py: Contém as rotas para operações CRUD relacionadas às tarefas.app/models.py: Define os modelos de dados para usuários e tarefas.app/database.py: Configura a conexão com o banco de dados SQLite.app/crud.py: Contém as funções CRUD para interagir com o banco de dados.app/dependencies.py: Centraliza as dependências usadas em várias partes do projeto.tests/test_api.py: Contém os testes para todos os endpoints da API.alembic/versions/: Contém os scripts de migração do banco de dados.
-
Clone o repositório:
git clone https://github.com/pedroleondev/ToDoListFastAPI.git cd ToDoListFastAPI -
Crie e ative um ambiente virtual:
conda create -n env_todolistfastapi python=3.10 -y conda activate <nome_do_ambiente>
-
Instale as dependências:
pip install -r requirements.txt
- Aplique as migrações do banco de dados:
alembic upgrade head
-
Inicie o servidor FastAPI:
uvicorn app.main:app --reload
-
Acesse a documentação interativa da API em
http://localhost:8000/docs.
-
Criar Usuário
- POST
/auth/ - Corpo da requisição:
{ "usuario": "seu_usuario", "senha": "sua_senha" }
- POST
-
Gerar Token
- POST
/auth/token - Corpo da requisição (form-data):
username: seu_usuariopassword: sua_senha
- POST
-
Obter Usuário Atual
- GET
/user - Cabeçalho da requisição:
Authorization:Bearer <seu_token>
- GET
-
Criar Tarefa
- POST
/tasks/ - Corpo da requisição:
{ "titulo": "Título da Tarefa", "descricao": "Descrição da Tarefa", "estado": "pendente" }
- POST
-
Listar Tarefas
- GET
/tasks/
- GET
-
Filtrar Tarefas por Estado
- GET
/tasks/filter?estado=pendente
- GET
-
Buscar Tarefa por ID
- GET
/tasks/{task_id}
- GET
-
Atualizar Tarefa
- PUT
/tasks/{task_id} - Corpo da requisição:
{ "titulo": "Título Atualizado", "descricao": "Descrição Atualizada", "estado": "em andamento" }
- PUT
-
Deletar Tarefa
- DELETE
/tasks/{task_id}
- DELETE
- Execute os testes usando o pytest:
pytest tests/test_api.py
-
Construa a imagem Docker:
docker build -t todolistfastapi-app . -
Execute o container Docker:
docker run -p 8000:8000 todolistfastapi-app
-
Use a imagem disponível no Docker Hub:
docker push pedroleonpython/todolistfastapi-app:0.3
Sinta-se à vontade para contribuir com este projeto. Abra uma issue ou envie um pull request com melhorias e correções.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.