ANÚNCIO

Aula 12 – Curso de FastAPI 2025

Crie um container Docker para uma aplicação FastAPI, substitua SQLite por PostgreSQL e utilize TestContainers para testes isolados.

⏱ 1h 57min 👁 2.783 visualizações 📅 junho 18, 2025

Mais aulas deste curso

Curso de FastAPI 2025

Aula 12 de 15

Resumo

Dockerização de aplicações FastAPI

Esta aula foca na containerização de uma aplicação FastAPI usando Docker, um passo essencial para levar projetos do ambiente local para produção. O Docker permite empacotar a aplicação com todas as suas dependências em um container isolado, garantindo que o código funcione de forma consistente em qualquer máquina. Durante a aula, é demonstrado como criar um Dockerfile adequado para uma aplicação FastAPI, configurando as camadas de imagem de forma otimizada para minimizar o tamanho final e melhorar os tempos de build. A containerização também facilita o deployment em plataformas como Kubernetes, Docker Swarm ou serviços em nuvem que oferecem suporte nativo a containers.

Substituindo SQLite por PostgreSQL

O SQLite é excelente para prototipagem e desenvolvimento local, mas em aplicações de produção é necessário um banco de dados mais robusto e escalável. O PostgreSQL oferece recursos avançados como transactions ACID, índices sofisticados, suporte a múltiplas conexões simultâneas e melhor performance em ambientes com alta concorrência. Nesta seção da aula, aprende-se como trocar o driver SQLite pela conexão PostgreSQL, ajustando as strings de conexão, configurando variáveis de ambiente e garantindo que as operações de criação de tabelas funcionem corretamente com o novo banco. Essa transição é prática e didática, mostrando passo a passo como refatorar código existente sem perder funcionalidade.

TestContainers para testes integrados

TestContainers é uma biblioteca que permite executar dependências reais (como bancos de dados, caches, filas) dentro de containers Docker durante a execução de testes. Em vez de usar mocks ou bancos em memória, TestContainers provisiona um banco PostgreSQL real em um container isolado, executa os testes contra esse banco real e depois destrói o container automaticamente. Isso garante que os testes sejam muito mais confiáveis e representativos do comportamento em produção, eliminando surpresas quando o código é implantado. A aula explora como integrar TestContainers em um projeto FastAPI, configurando fixtures que criam e limpam containers automaticamente para cada teste.

Escopos de fixtures no pytest

Fixtures são componentes reutilizáveis nos testes que preparam dados, estabelecem conexões com bancos e realizam setup/teardown. O pytest oferece diferentes escopos para fixtures: function (cria uma nova instância para cada função de teste), class (reutiliza para todos os testes em uma classe), module (reutiliza para todos os testes em um módulo) e session (reutiliza para toda a execução de testes). Entender e escolher o escopo correto é fundamental para otimizar o tempo de execução dos testes e evitar estado compartilhado indesejado. Na aula, discute-se como aplicar esses conceitos com TestContainers, garantindo que containers sejam criados apenas quando necessário e reutilizados eficientemente entre múltiplos testes.

Integração do fluxo completo

O grande valor desta aula está em unir todos esses conceitos em um fluxo coerente: uma aplicação FastAPI rodando em um container Docker, conectada a um PostgreSQL real, com testes robustos usando TestContainers e fixtures bem estruturadas. Essa arquitetura é padrão em projetos profissionais modernos e prepara o desenvolvedor para ambientes de produção real. A aula demonstra desde a construção da imagem Docker até a execução completa da suite de testes, passando pela configuração das dependências e variáveis de ambiente.

Boas práticas em ambiente de desenvolvimento

Além dos aspectos técnicos, a aula reforça boas práticas como usar variáveis de ambiente para configurar a conexão com o banco, manter o código testável desde o início do desenvolvimento e estruturar o projeto de forma que a transição de SQLite para PostgreSQL seja simples e natural. Essas práticas evitam refatorações dolorosas no futuro e facilitam a colaboração em equipes, onde diferentes desenvolvedores precisam ter ambientes isolados e reproduzíveis. Docker e TestContainers são ferramentas que implementam automaticamente esses princípios, reduzindo erros humanos e aumentando a confiança na qualidade do software.

O que você vai aprender

  • Criar e configurar um Dockerfile para aplicações FastAPI otimizado para produção
  • Integrar PostgreSQL em projetos FastAPI e migrar de SQLite
  • Utilizar TestContainers para testes integrados com dependências reais
  • Compreender e aplicar diferentes escopos de fixtures no pytest
  • Estruturar variáveis de ambiente e configurações para múltiplos ambientes

Conceitos abordados

Tecnologias utilizadas

Capítulos 9 marcações

  1. Introdução e objetivos da aula
  2. Criando o Dockerfile para FastAPI
  3. Otimização da imagem Docker
  4. Migração de SQLite para PostgreSQL
  5. Configuração de conexão com PostgreSQL
  6. Introdução a TestContainers
  7. Implementando TestContainers nos testes
  8. Escopos de fixtures e sua aplicação
  9. Testando a aplicação completa

Próximo vídeo sugerido

Avaliações

Avaliação dos alunos 0.0
0 avaliações
Avalie esta aula

Ajude outros alunos a entenderem se esta aula foi útil.

Ainda não há avaliações. Seja o primeiro a avaliar esta aula.