O site gerado por esse repositório está disponível em: fastapidozero.dunossauro.com.
O objetivo desse projeto é ensinar FastAPI para pessoas que queiram ter o seu primeiro contato com o mesmo. A ideia padrão é construir uma aplicação pequena e simples, mas executando todos os passos até o deploy.
As Aulas estão dividas em:
- Apresentação do curso
 - Configurando o ambiente de desenvolvimento
 - Introdução ao desenvolvimento WEB
 - Estruturando o projeto e criando rotas CRUD
 - Configurando banco de dados e gerenciando migrações com Alembic
 - Integrando banco de dados à API
 - Autenticação e Autorização com JWT
 - Refatorando a estrutura do projeto
 - Tornando o projeto assíncrono
 - Tornando o sistema de autenticação robusto
 - Criando Rotas CRUD para gerenciamento de tarefas
 - Dockerizando a aplicação
 - Automatizando os testes com integração contínua
 - Fazendo o deploy no fly.io
 - Despedida
 
Após todas as aulas, se você sentir que ainda quer evoluir mais e testar seus conhecimentos, temos um projeto final para avaliar o quanto você aprendeu.
Todo esse projeto é gerenciado pelo Poetry, a versão usada durante o momento da escrita é 2.2.1:
pipx install poetry==2.2
pipx inject poetry poetry-plugin-shellA versão usada do python é a versão 3.13.2:
poetry python install 3.13
para configurar todo o ambiente basta executar:
poetry installpara ativar o ambiente virtual:
poetry shellOs comandos para executar funções como deploy, servidor local, geração de slides, etc. Estão todas sendo feitas pelo taskipy:
task --list
serve       Executa o servidor local do mkdocs
mserve      Executa o servidor local do mkdocs via mike
deploy      Faz o deploy da página em produção usando mike
slides      Gera os slides em html
ruff        ruff checkPara executar qualquer comando, basta usar: task <comando>, como por exemplo task serve.
Todos os slides foram feitos usando marp. Versão do marp usada: 4.0.3. O tema rose-pine, com algumas modificações, está dentro da pasta dos slides brutos.
TODO: Deixar isso melhor documentado
towncrier build --version <versao>, algo como:
towncrier build --version 4.0.2A versão deve ser atualizada no campo project.version:
[project]
name = "fastapi-do-zero"
version = "4.0.2"# ... mkdocs.yml
extra:
  current_tag: v4.0.2 # para taggit add .
git commit -m "Upadate para v4.0.2"git tag v4.0.2
git push --tagsTODO: Isso só vale para majors
mike deploy --push 4.0  # atualizar a versãoO mike foi introduzido após a v4.0. Você precisa aplicar o diff abaixo, caso precise atualizar algo:
Diff que precisa ser aplicado antes!
diff --git a/mkdocs.yml b/mkdocs.yml
index 38c5b9f..7ed5c54 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -67,14 +67,6 @@ plugins:
       show_line_count: true
   - git-revision-date-localized
   - social
-  - with-pdf:
-      author: Eduardo Mendes (@dunossauro)
-      cover_title: FastAPI do zero
-      cover_subtitle: Uma introdução prática!
-      copyright: CC BY-NC-SA
-      toc_level: 6
-      enabled_if_env: ENABLE_PDF_EXPORT
-      toc_title: Índice
   - exclude:
       glob:
         - "wip.md"
@@ -115,6 +107,8 @@ extra:
       link: https://dunossauro.com
     - icon: simple/codeberg
       link: https://codeberg.org/dunossauro
+  version:
+    provider: mike
 hooks:
   - hooks/quiz_hook.pyExemplo do comando do mike:
mike deploy --push 4.0 --allow-empty
# onde 4.0 é a versão da tag da documentação