WebAPI con FastAPI

Version 2: separado en capas

Ernesto Cullen
12 min readApr 22, 2024

Implementación de una API con la funcionalidad ABML básica (Agregar, Borrar, Modificar, Listar) para administrar una lista de Contactos, usando FastAPI. En esta oportunidad, tomamos el código que escribimos al principio y lo refactorizamos con el objetivo de dividir el código en capas.

La versión 1 nos muestra lo fácil que es hacer una Api con FastAPI. Pero por supuesto que esta es una API ‘de juguete’: ¡no vamos a poner todo el código de una aplicación real en un solo archivo!

Una versión más realista de nuestra aplicación tendrá el código dividido en módulos para hacerlo más manejable. Hay muchas formas de organizar el código, tales como Clean architecture, Hexagonal architecture, etc. En nuestro ejemplo vamos a implementar la siguiente estructura, una adaptación de la clásica división en capas:

Usaremos directorios para agrupar el código de las distintas funciones:

  • api: contiene los endpoints agrupados en controladores (controllers), y el código que interactúa directamente como los modelos (DTO) de entrada y salida.
  • data: contiene el código de interacción con el almacenamiento de datos -repositorios, código de conexión, mapeos, migraciones, etc.
  • domain: contiene las clases de dominio o de negocio

--

--

Ernesto Cullen

Electronics Engineer, Software developer, Teacher, lifelong curious