Esse é meu projeto final do curso FastAPI do Zero. Mas informações podem ser vistas aqui.
- EditorConfig: Auxiliar a configuração do editor (charset, formato de quebra de linha, indentação dos diferentes tipos de arquivos, espaços no final das linhas, quebra de linha no final dos arquivos).
- Dev Containers: Criar ambiente de desenvolvimento dentro de um contêiner Docker de forma automatizada, não exigindo nenhuma configuração manual.
- GNU Make: Executar comandos no projeto.
- GitHub Actions: Executar os lints e testes no servidor.
- Poetry: Gerenciar o projeto Python e controlar as dependências.
- Ruff: Formatador e regras de lint para o código Python.
- mypy: Varifica erros de tipos no código Python.
- pytest: Testes automatizados no código Python.
- minikube: Gerencia cluster Kubernetes local para testes.
- Helm: Gerencia recursos da aplicação criados no Kubernetes.
A configuração do projeto ocorre de forma automática pelo Development Containers, bastando ter o Docker instalado e abrir o projeto no editor. No Visual Studio Code é necessário ter a extensão Dev Containers instalada, após isso basta abrir o projeto que o próprio Visual Studio Code sugerirá reabri-lo dentro do contêiner.
Caso não queira utilizar um editor específico, é possível construir o ambiente utilizando o pacote CLI.
É possível executar os lints e testes a cada commit, garantindo que os mesmos estejam passando antes do commit seja realizado. Para isso basta executar o seguinte comando a baixo:
cat > .git/hooks/pre-commit << EOF
#!/bin/sh
make lint test
EOF
chmod +x .git/hooks/pre-commit
Esse projeto possui o pgAdmin4 para a adiministração do banco de dados PostgreSQL. Use as informações a baixo para acessá-lo:
URL: http://localhost:5050/
Usuário: [email protected]
Senha: postgres
Senha do banco: postgres
Esse projeto pode ser executado no Kubernetes, para isso o [minikube] está disponível no dev container para testá-lo localmente.
Para iniciar um cluster do Kubernetes local, execute o seguinte comando:
make minikube-start
Para parar a execução do cluster Kubernetes, basta executar o comando:
make minikube-stop
Dessa forma é possível usar o comando de iniciar para executá-lo novamente. Para apagar o cluster, é possível usar o comando:
make minikube-delete
Opcionalmente é possível acessar um dashboard do Kubernetes quando ele está executando com o comando:
make minikube-dashboard
O deploy da aplicação pode ser feita utilizando o comando:
make minikube-run-app
Após isso é possível acessar a API atráves do endereço mostrado na tela ou por http://localhost:8000/.
A aplicação também pode ser removida do Kubernetes com o comando:
make minikube-delete-app