Sobes.tech
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.