Skip to content

Capítulo 3.1: Instalación de FastAPI y configuración del entorno

Tiempo de estudio: 45 minutos


1. ¿Qué es FastAPI? El hiperpropulsor para tu API

Si Flask es una sonda de reconocimiento ágil y Django es un enorme portaaviones, entonces FastAPI es un caza estelar superluminal.

FastAPI es un framework web moderno y de alto rendimiento para construir APIs en Python 3.7+. Sus principales ventajas son:

  • Velocidad: Uno de los frameworks de Python más rápidos, comparable con NodeJS y Go.
  • Sencillez: Sintaxis minimalista e intuitiva.
  • Auto-documentación: Genera automáticamente documentación interactiva para tu API.
  • Tipado: Utiliza las sugerencias de tipo estándar de Python para validación, autocompletado y documentación.

💡 Analogía espacial:

FastAPI es como el "hiperpropulsor" para tu nave-API. Se basa en dos tecnologías:

  • Starlette (el chasis del caza) — proporciona asincronía y el más alto rendimiento.
  • Pydantic (el ordenador de a bordo) — se encarga de la validación de datos y la configuración.

2. Preparación de la plataforma de lanzamiento: Entorno virtual

Antes de construir nuestro caza, necesitamos crear un laboratorio de ensamblaje estéril. En Python, para esto se utilizan los entornos virtuales.

¿Por qué es necesario? Para que las dependencias de nuestro proyecto (motores, sistemas de navegación) no entren en conflicto con otros proyectos en tu ordenador.

Paso 1: Creamos el entorno virtual Abre la terminal en la carpeta de tu proyecto (por ejemplo, C:\Projects\FastAPI_Fleet) y ejecuta:

python -m venv venv
Este comando creará una carpeta venv con una versión aislada de Python.

Paso 2: Activamos el "campo de fuerza" del laboratorio

  • Windows (PowerShell):

.\venv\Scripts\Activate.ps1
(Si aparece un error, es posible que necesites permitir la ejecución de scripts: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process)

  • Windows (CMD):
.\venv\Scripts\activate.bat
  • macOS / Linux:

source venv/bin/activate
Después de la activación, (venv) aparecerá al principio de la línea de la terminal. ¡Esto significa que estás dentro de tu laboratorio!


3. Instalación del motor: FastAPI y Uvicorn

Ahora instalaremos dos componentes clave:

  • fastapi: El framework en sí.
  • uvicorn: Un servidor ASGI ultrarrápido que "ejecutará" nuestro motor.

Ejecuta en el entorno activado:

pip install "fastapi[all]"

💡 ¿Por qué [all]? Esto instalará fastapi, uvicorn y otros paquetes útiles (por ejemplo, para soporte de websockets y Jinja2), que serán útiles en futuras misiones.

Verificación de la instalación:

pip freeze
Deberías ver fastapi, pydantic, starlette, uvicorn y otros paquetes en la lista.


4. Primer contacto: Archivo main.py

Crea el archivo main.py en la raíz del proyecto — este será el panel de control central de nuestra API.

Añade el siguiente código a main.py:

from fastapi import FastAPI

# Creamos una instancia de nuestra "nave espacial" API
app = FastAPI()

# Definimos el primer "punto de acoplamiento" (endpoint)
# Esta es la URL raíz: /
@app.get("/")
def read_root():
    """
    Este es el mensaje del Centro de Control de Misiones (CCM)
    que ven todos los que se conectan a la puerta principal.
    """
    return {"message": "¡Bienvenido al Centro de Control de la Flota Espacial!"}
- @app.get("/"): Este es un decorador que le dice a FastAPI que la función read_root debe manejar las solicitudes GET en la URL raíz (/).


5. ¡Ignición! Inicio del servidor

¡Ha llegado el momento de arrancar nuestro hiperpropulsor! En la terminal (con venv activo) ejecuta:

uvicorn main:app --reload
Desglose del comando:

  • uvicorn: Iniciamos el servidor Uvicorn.
  • main: El archivo main.py (sin .py).
  • app: El objeto app = FastAPI(), creado dentro de main.py.
  • --reload: "Piloto automático". El servidor se reiniciará automáticamente con cada cambio en el código.

Salida esperada en la terminal:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [12345]
INFO:     Started server process [12346]
INFO:     Waiting for application startup.
INFO:     Application startup complete.


6. Prueba de comunicación con el CCM

¡Tu API ya está en línea y escuchando en el puerto 8000!

Paso 1: Verificación en el navegador

Abre en tu navegador la dirección http://127.0.0.1:8000. Deberías ver:

{
  "message": "¡Bienvenido al Centro de Control de la Flota Espacial!"
}

Paso 2: Un vistazo al futuro (auto-documentación)

FastAPI ya ha creado dos regalos para ti. Abre estas URL:

  • http://127.0.0.1:8000/docs: Documentación interactiva Swagger UI.
  • http://127.0.0.1:8000/redoc: Documentación alternativa ReDoc.

¡Verás tu primer endpoint, que puedes probar directamente desde el navegador!


Cuestionario para afianzar conocimientos

1. FastAPI es conocido por su...

2. ¿Para qué se necesita un entorno virtual (`venv`)?

3. ¿Qué servidor se utiliza para ejecutar FastAPI en esta lección?

4. El comando `uvicorn main:app --reload` significa:

5. ¿Qué hace el decorador `@app.get("/")` en FastAPI?


🚀 Resumen del capítulo:

¡Has ensamblado y lanzado con éxito el "hiperpropulsor" de tu nueva API! Ahora tienes: - 🛠️ Entorno de desarrollo aislado (venv) - 🚀 FastAPI y servidor Uvicorn instalados - 🛰️ API funcionando con un solo endpoint - 📊 Documentación generada automáticamente

¡Todos los sistemas en orden! En el siguiente capítulo, crearemos nuestro primer endpoint completo que devolverá una lista de naves espaciales.

📌 Verificación:

  • El entorno (venv) está activo en el terminal
  • El servidor uvicorn se ha iniciado sin errores
  • La dirección http://127.0.0.1:8000/docs se abre en el navegador

⚠️ Si hay errores:

  • command not found: Asegúrate de haber activado el entorno virtual.
  • Port ... is already in use: Otro programa está usando el puerto 8000. Deténlo o inicia uvicorn en otro puerto: uvicorn main:app --reload --port 8001.
  • Errores al activar venv en PowerShell: Verifica la política de ejecución de scripts.