Sobes.tech
Junior — Middle

Qual é o papel da injeção de dependências no FastAPI e por que ela é necessária?

sobes.tech IA

Resposta da IA

A injeção de dependências (Dependency Injection, DI) no FastAPI é usada para gerir as dependências entre os componentes da aplicação, por exemplo, para conectar à base de dados, obter o utilizador atual, configurar o cache, etc. Isto permite:

  • Eliminar a rigidez na ligação entre componentes.
  • Melhorar a testabilidade do código, pois as dependências podem ser facilmente substituídas.
  • Gerir de forma centralizada a criação e o ciclo de vida dos objetos.

O FastAPI implementa DI através da parametrização das funções manipuladoras com Depends. Por exemplo:

from fastapi import FastAPI, Depends

def get_db():
    db = create_db_session()
    try:
        yield db
    finally:
        db.close()

app = FastAPI()

@app.get("/items/")
def read_items(db=Depends(get_db)):
    items = db.query(Item).all()
    return items

Aqui, get_db é uma dependência que é automaticamente injetada no manipulador. Isto simplifica a gestão de recursos e aumenta a modularidade da aplicação.