~/questoes/programacao
Dependency Injection é um padrão de design que permite que FastAPI forneça automaticamente uma sessão de banco de dados limpa para cada requisição, sem usar variáveis globais. Isso garante que dados de uma requisição não vazem para outra, mantendo o isolamento e facilitando testes.
Usar Dependency Injection evita variáveis globais e garante que cada requisição receba sua própria sessão isolada do banco. Isso previne bugs silenciosos onde dados de um usuário poderiam ser acessados por outro, e torna o código muito mais testável porque você consegue injetar uma sessão fake nos testes.
Embora testes sejam facilitados como efeito colateral, o motivo principal não é automatizar testes. Dependency Injection é sobre arquitetura e isolamento de estado, não sobre automação de testes.
Dependency Injection não melhora a performance das queries SQL em si. A performance depende da otimização das queries, índices no banco e estrutura do código — não do padrão de injeção de dependência.
Essa é a razão principal. Variáveis globais compartilham estado entre todas as requisições, o que pode causar vazamento de dados. Dependency Injection cria isolamento: cada requisição recebe sua própria sessão limpa.
Múltiplos bancos de dados é um cenário avançado e diferente. Dependency Injection funciona com um ou múltiplos bancos, mas não é o motivo primário de sua existência em FastAPI.