Projeto de aprendizado com FastAPI, implementando uma lista de TODOs. Foi feito um CRUD simples com autenticação de usuário, JWT para geração de token, Docker para Postgres, SQLite para banco de testes e UV para gerenciamento de packages no python.
Descrição do projeto: https://roadmap.sh/projects/todo-list-api
- Python
- Docker
- SQLite
- UV ( gerenciador de packages )
Segue o comando utilizado para criação do banco de dados postgres:
docker run --name todo-pg -e POSTGRES_DB=todos -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=mysecretp
assword -p 5432:5432 -d postgres:15
- Clone o projeto com o comando
git clone https://github.com/fiwon123/todolist-python.gitou baixe o projeto - Renomeie o arquivo
.example.envpara.env - Utilize o comando
uv syncpara resolver as dependências - Utilize o comando estando na pasta raiz para rodar a API
uv run uvicorn todolist.main:app --reload - Acesse o
http://127.0.0.1:8000/docsno navegador para testar os endpoints - Caso queira testar direto a API é necessário uma plataform de API para testes como
Bruno,Postmanou rodar por linha de comando usandocurlpor exemplo
Os arquivos de testes estão localizados na pasta ./todolist/test/
Estando na pasta raiz utilize o comando uv run pytest, uv pytest --disable-warnings ou uv pytest -vv
É possível rodar sem o comando uv ativando o ambiente de desenvolvimento do python localizado na pasta .venv. Para ativar é necessário rodar o comando na pasta raiz:
source .venv/bin/activate(Linux)pytest
E para desativar apenas rodar:
deactivate