Skip to content

2. Instalación y configuración del entorno

Antes de instalar FastAPI necesitas:

RequisitoVersión mínima
Python3.7 o superior
pipÚltima versión
Verificar requisitos
# Verificar versión de Python
python --version
# Python 3.11.0
# Verificar pip
pip --version
# pip 23.0 from ...
Instalar FastAPI
# Instalación básica
pip install fastapi
# Instalación con todas las dependencias opcionales
pip install "fastapi[all]"
Verificar instalación
# Verificar que FastAPI está instalado
pip 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)”

Uvicorn es un servidor ASGI (Asynchronous Server Gateway Interface) de alto rendimiento. Es necesario para ejecutar aplicaciones FastAPI.

CaracterísticaDescripción
ASGIProtocolo asíncrono para Python
Alto rendimientoBasado en uvloop y httptools
Recarga automáticaDetecta cambios en el código
Instalar Uvicorn
# Instalación básica
pip install uvicorn
# Instalación con extras de rendimiento
pip install "uvicorn[standard]"
Verificar Uvicorn
# Verificar Uvicorn
uvicorn --version
# Running uvicorn 0.27.0 with CPython 3.11.0 on Windows

Crear proyecto
# Crear carpeta del proyecto
mkdir mi_api
cd mi_api
# Crear entorno virtual (recomendado)
python -m venv venv
# Activar entorno virtual
# Windows:
venv\Scripts\activate
# Linux/Mac:
source venv/bin/activate
# Instalar dependencias
pip install fastapi uvicorn
Crear main.py
# Crear archivo main.py
# Windows:
type nul > main.py
# Linux/Mac:
touch main.py
main.py
from fastapi import FastAPI
# Crear instancia de la aplicación
app = 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”
mi_api/
├── venv/ # Entorno virtual
├── main.py # Archivo principal
└── requirements.txt # Dependencias
Generar requirements.txt
# Generar archivo de dependencias
pip freeze > requirements.txt
requirements.txt
fastapi==0.109.0
uvicorn==0.27.0
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”
Ejecutar servidor
# Ejecutar servidor
uvicorn 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:8000
ParámetroDescripción
mainNombre del archivo (sin .py)
appNombre de la instancia FastAPI
--hostDirección IP (default: 127.0.0.1)
--portPuerto (default: 8000)
Con parámetros
# Ejecutar en puerto específico
uvicorn main:app --port 3000
# Ejecutar accesible desde otras máquinas
uvicorn main:app --host 0.0.0.0 --port 8000
Probar API
# Desde el navegador
http://localhost:8000
# Respuesta JSON:
{"mensaje": "¡Hola, FastAPI!"}
# Documentación automática
http://localhost:8000/docs

🔄 2.6 Uso de recarga automática (reload)

Section titled “🔄 2.6 Uso de recarga automática (reload)”

La opción --reload hace que Uvicorn reinicie automáticamente cuando detecta cambios en el código. Es ideal para desarrollo.

Con --reload
# Ejecutar con recarga automática
uvicorn 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 desarrollo
# Comando recomendado para desarrollo
uvicorn main:app --reload --host 0.0.0.0 --port 8000
Probar reload
# 1. Ejecutar servidor con reload
uvicorn 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

🐝