Junior — Middle
¿Cuál es el papel de la inyección de dependencias en FastAPI y por qué es necesaria?
sobes.tech AI
Respuesta de la IA
La inyección de dependencias (Dependency Injection, DI) en FastAPI se utiliza para gestionar las dependencias entre los componentes de la aplicación, por ejemplo, para conectarse a la base de datos, obtener el usuario actual, configurar el caché, etc. Esto permite:
- Eliminar la rigidez en la relación entre componentes.
- Mejorar la testabilidad del código, ya que las dependencias se pueden reemplazar fácilmente.
- Gestionar de manera centralizada la creación y el ciclo de vida de los objetos.
FastAPI implementa DI a través de la parametrización de funciones manejadoras usando Depends. Por ejemplo:
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
Aquí, get_db es una dependencia que se inyecta automáticamente en el manejador. Esto simplifica la gestión de recursos y aumenta la modularidad de la aplicación.