2. Instalación y configuración del entorno
📦 2.1 Instalación de FastAPI
Section titled “📦 2.1 Instalación de FastAPI”Requisitos previos
Section titled “Requisitos previos”Antes de instalar FastAPI necesitas:
| Requisito | Versión mínima |
|---|---|
| Python | 3.7 o superior |
| pip | Última versión |
Verificar Python instalado
Section titled “Verificar Python instalado”# Verificar versión de Pythonpython --version# Python 3.11.0
# Verificar pippip --version# pip 23.0 from ...Instalar FastAPI
Section titled “Instalar FastAPI”# Instalación básicapip install fastapi
# Instalación con todas las dependencias opcionalespip install "fastapi[all]"Verificar instalación
Section titled “Verificar instalación”# Verificar que FastAPI está instaladopip show fastapi
# Salida esperada:# Name: fastapi# Version: 0.109.0# ...🦄 2.2 Instalación de Uvicorn (servidor ASGI)
Section titled “🦄 2.2 Instalación de Uvicorn (servidor ASGI)”Qué es Uvicorn
Section titled “Qué es Uvicorn”Uvicorn es un servidor ASGI (Asynchronous Server Gateway Interface) de alto rendimiento. Es necesario para ejecutar aplicaciones FastAPI.
| Característica | Descripción |
|---|---|
| ASGI | Protocolo asíncrono para Python |
| Alto rendimiento | Basado en uvloop y httptools |
| Recarga automática | Detecta cambios en el código |
Instalar Uvicorn
Section titled “Instalar Uvicorn”# Instalación básicapip install uvicorn
# Instalación con extras de rendimientopip install "uvicorn[standard]"Verificar instalación
Section titled “Verificar instalación”# Verificar Uvicornuvicorn --version# Running uvicorn 0.27.0 with CPython 3.11.0 on Windows🆕 2.3 Crear el primer proyecto FastAPI
Section titled “🆕 2.3 Crear el primer proyecto FastAPI”Crear carpeta del proyecto
Section titled “Crear carpeta del proyecto”# Crear carpeta del proyectomkdir mi_apicd mi_api
# Crear entorno virtual (recomendado)python -m venv venv
# Activar entorno virtual# Windows:venv\Scripts\activate# Linux/Mac:source venv/bin/activate
# Instalar dependenciaspip install fastapi uvicornCrear archivo principal
Section titled “Crear archivo principal”# Crear archivo main.py# Windows:type nul > main.py# Linux/Mac:touch main.pyEscribir la primera API
Section titled “Escribir la primera API”from fastapi import FastAPI
# Crear instancia de la aplicaciónapp = FastAPI()
# Definir ruta raíz@app.get("/")def inicio(): return {"mensaje": "¡Hola, FastAPI!"}📁 2.4 Estructura mínima de un proyecto
Section titled “📁 2.4 Estructura mínima de un proyecto”Estructura básica
Section titled “Estructura básica”mi_api/├── venv/ # Entorno virtual├── main.py # Archivo principal└── requirements.txt # DependenciasCrear requirements.txt
Section titled “Crear requirements.txt”# Generar archivo de dependenciaspip freeze > requirements.txtfastapi==0.109.0uvicorn==0.27.0Estructura para proyectos más grandes
Section titled “Estructura para proyectos más grandes”mi_api/├── app/│ ├── __init__.py│ ├── main.py # Punto de entrada│ ├── routers/ # Rutas organizadas│ ├── models/ # Modelos Pydantic│ └── services/ # Lógica de negocio├── venv/├── requirements.txt└── README.md▶️ 2.5 Ejecutar el servidor de desarrollo
Section titled “▶️ 2.5 Ejecutar el servidor de desarrollo”Comando básico
Section titled “Comando básico”# Ejecutar servidoruvicorn main:app
# Salida:# INFO: Started server process [12345]# INFO: Waiting for application startup.# INFO: Application startup complete.# INFO: Uvicorn running on http://127.0.0.1:8000Parámetros del comando
Section titled “Parámetros del comando”| Parámetro | Descripción |
|---|---|
main | Nombre del archivo (sin .py) |
app | Nombre de la instancia FastAPI |
--host | Dirección IP (default: 127.0.0.1) |
--port | Puerto (default: 8000) |
Ejemplo con parámetros
Section titled “Ejemplo con parámetros”# Ejecutar en puerto específicouvicorn main:app --port 3000
# Ejecutar accesible desde otras máquinasuvicorn main:app --host 0.0.0.0 --port 8000Probar la API
Section titled “Probar la API”# Desde el navegadorhttp://localhost:8000
# Respuesta JSON:{"mensaje": "¡Hola, FastAPI!"}
# Documentación automáticahttp://localhost:8000/docs🔄 2.6 Uso de recarga automática (reload)
Section titled “🔄 2.6 Uso de recarga automática (reload)”Qué es la recarga automática
Section titled “Qué es la recarga automática”La opción --reload hace que Uvicorn reinicie automáticamente cuando detecta cambios en el código. Es ideal para desarrollo.
Activar recarga automática
Section titled “Activar recarga automática”# Ejecutar con recarga automáticauvicorn main:app --reload
# Salida:# INFO: Will watch for changes in these directories: ['/ruta/mi_api']# INFO: Uvicorn running on http://127.0.0.1:8000# INFO: Started reloader process [12345]Comando completo para desarrollo
Section titled “Comando completo para desarrollo”# Comando recomendado para desarrollouvicorn main:app --reload --host 0.0.0.0 --port 8000Ejemplo: Probar recarga automática
Section titled “Ejemplo: Probar recarga automática”# 1. Ejecutar servidor con reloaduvicorn main:app --reload
# 2. Modificar main.py (cambiar el mensaje)@app.get("/")def inicio(): return {"mensaje": "¡Mensaje actualizado!"}
# 3. Guardar el archivo# El servidor se reinicia automáticamente
# 4. Refrescar navegador# Verás el nuevo mensaje sin reiniciar manualmente📝 Resumen
Section titled “📝 Resumen”
🐝