WebAPI con FastAPI
Entidades embebidas
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…