Este repositorio es un tutorial teórico e ilustrativo sobre FastAPI, un framework moderno y de alto rendimiento para construir APIs con Python 3.7+ basado en estándares como OpenAPI y JSON Schema.
Incluye un ejemplo básico de "Hola Mundo" dockerizado, junto con explicaciones detalladas para principiantes sobre el funcionamiento de FastAPI, su estructura y despliegue.
- Entender los fundamentos básicos de FastAPI.
- Mostrar cómo estructurar una aplicación FastAPI.
- Ejecutar un ejemplo funcional de "Hola Mundo".
- Dockerizar una app FastAPI para entornos de desarrollo.
fastapi-hola-mundo/
├── app/
│ ├── __init__.py
│ └── main.py # Archivo principal con la instancia de FastAPI
├── docs/
│ ├── introduction.md # Introducción teórica a FastAPI
│ ├── fastapi_basics.md # Conceptos básicos del framework
│ ├── docker_setup.md # Guía para configurar Docker
│ └── example_usage.md # Ejemplo práctico de uso
├── Dockerfile # Imagen base de FastAPI
├── docker-compose.yml # Orquestación del contenedor
├── requirements.txt # Dependencias del proyecto
├── README.md
└── .gitignore
Antes de iniciar la aplicación, asegúrese de tener instalado en su sistema:
git clone https://github.com/illuminaki/fastapi-hola-mundo.git
cd fastapi-hola-mundodocker compose up --buildEsto construirá la imagen Docker y levantará el contenedor. La aplicación estará disponible en:
- API: http://localhost:8000
- Documentación interactiva (Swagger UI): http://localhost:8000/docs
- Documentación alternativa (ReDoc): http://localhost:8000/redoc
Para detener la aplicación y eliminar los contenedores, ejecute:
docker compose downSi desea eliminar también los volúmenes asociados (datos persistentes):
docker compose down -vEjemplo básico de FastAPI:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"mensaje": "Hola Mundo desde FastAPI"}FROM tiangolo/uvicorn-gunicorn-fastapi:python3.9
COPY ./app /appversion: '3.9'
services:
fastapi:
build: .
ports:
- "8000:80"
volumes:
- ./app:/appLas dependencias del proyecto se encuentran en requirements.txt. Puede instalar localmente con:
pip install -r requirements.txt- Autenticación JWT
- Conexión a base de datos
- Tests automáticos
- Deploy en servicios cloud
¡Las contribuciones son bienvenidas! Puedes abrir un issue o hacer un pull request si deseas aportar mejoras.
Este repositorio está licenciado bajo la MIT License. Consulta el archivo LICENSE para más detalles.