Este repositorio contiene una introducción práctica a FastAPI, explicando los conceptos básicos y un ejemplo sencillo de una API To-Do.
FastAPI es un framework moderno y rápido para crear APIs con Python, basado en type hints y con documentación automática incluida.
FastAPI es un framework para construir APIs REST con Python que se caracteriza por:
- ⚡ Alto rendimiento (basado en Starlette y Pydantic)
- 📄 Documentación automática (Swagger y ReDoc)
- 🧪 Validación de datos automática
- 🧑💻 Sintaxis clara y moderna
- 🔧 Ideal para microservicios y APIs REST
- Python 3.8 o superior
- pip
Clona el repositorio y crea un entorno virtual (opcional pero recomendado):
python -m venv venv
source venv/bin/activate # Linux / Mac
source venv/Scripts/activate # WindowsInstala FastAPI y el servidor ASGI:
pip install fastapi uvicorn Para ejecutar la aplicación
uvicorn main:app --reloadmain→ nombre del archivoapp→ nombre de la variable que contiene la aplicación; instancia de FastAPI--reload→ recarga automáticamente el servidor
FastAPI genera documentación automáticamente:
- Swagger UI → http://127.0.0.1:8000/docs
- ReDoc → http://127.0.0.1:8000/redoc
fastapiv1/
│
├── src/
│ ├── main.py # Explicación basica de FastAPI
│ ├── to-do.py # Parte Practica de la Pildora.
│
├── .gitignore # Ignora /cache y archivos sensibles
├── requirements.txt # Configuración de dependencias necesarias
└── README.mdVamos a implementar una API RESTful de gestión de tareas utilizando FastAPI.
GESTOR DE TAREAS – API RESTFUL CON FASTAPI
Durante este ejemplo práctico aprenderemos a:
- Implementar un gestor de tareas simple utilizando FastAPI.
- Permitir a los usuarios crear, leer, actualizar y eliminar tareas (CRUD).
- Definir una estructura de tarea con los siguientes campos:
- Título
- Descripción
- Estado:
- pendiente
- en_progreso
- completada
- Fecha de vencimiento
- Utilizar Pydantic para la validación automática de datos.
- Almacenar las tareas en una estructura de datos en memoria (lista).
- Implementar manejo de errores:
- Tareas no encontradas
- Datos inválidos
Este enfoque permite centrarnos en FastAPI sin añadir complejidad extra como bases de datos.
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /tasks |
Listar tareas |
| GET | /tasks/{task_id} |
Obtener tarea por ID |
| POST | /tasks |
Crear una tarea |
| PUT | /tasks/{task_id} |
Actualizar tarea |
| DELETE | /tasks/{task_id} |
Eliminar tarea |
-
📘 FastAPI Docs: https://fastapi.tiangolo.com/
-
📘 Pydantic: https://docs.pydantic.dev/
-
📘 Uvicorn: https://www.uvicorn.org/
-
📘 Python Type Hints: https://docs.python.org/3/library/typing.html
Esta píldora muestra cómo:
- Crear una API con FastAPI
- Definir modelos con Pydantic
- Implementar un CRUD básico
- Usar documentación automática