WebAPI con FastAPI

Entidades embebidas

Ernesto Cullen
15 min readMay 12, 2024

Continuamos con el ejemplo de una WebAPI completa con FastAPI.

En la versión 1 vimos como podemos crear rápidamente una API, con un solo archivo.

En la versión 2 refactorizamos el código en capas, para facilitar futuros cambios.

En la versión 3 integramos una base de datos para almacenar los contactos.

En la versión 4 agregamos Alembic para administrar el esquema de la base de datos, y agregamos un par de migraciones.

En este artículo veremos cómo usar una entidad embebida dentro de otra: como se mapea a la base de datos, cómo afecta a los modelos de API, y cómo modificar las consultas y tests. El código está incluido en ‘version4’ en el repositorio Github: https://github.com/mcgilbertus/contacts-fapi.git

Entidades embebidas

Vamos a practicar con otra de las situaciones que se dan comúnmente: usar una clase para modelar un atributo de otra. En nuestro caso, cambiaremos la direccion de Contacto y en lugar de usar un string definiremos una nueva clase Direccion que contiene las distintas partes por separado:

# domain/model/direccion.py

from dataclasses import dataclass
from typing import Optional


@dataclass
class Direccion:
calle: Optional[str]=None
numero…

--

--

Ernesto Cullen

Electronics Engineer, Software developer, Teacher, lifelong curious