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.