Para activar el entorno virtual en Windows simplemente escribe:
curso-fastapi\Scripts\activate
Configurar FastAPI desde cero requiere tres pasos básicos: crear un entorno virtual, instalar el framework con sus dependencias estándar y levantar tu primer endpoint con Uvicorn. Si estás empezando con APIs en Python, esta guía te muestra el flujo mínimo para tener un servidor corriendo en minutos.
¿Por qué usar un entorno virtual antes de instalar FastAPI?
Un entorno virtual aísla las dependencias de tu proyecto para que no choquen con las de otros proyectos en tu máquina. Es el primer paso obligatorio antes de tocar cualquier framework de Python [0:08].
Para crearlo, abres la terminal y ejecutas el módulo venv de Python dentro de una carpeta llamada curso-fastapi. Después lo activas con source apuntando al ejecutable activate que vive en la carpeta bin del entorno [0:25].
¿Qué hace un entorno virtual en Python? Crea un espacio aislado donde instalas paquetes solo para ese proyecto. Así evitas que las versiones de una librería rompan otros proyectos que usan versiones distintas.
¿Cómo instalar FastAPI con sus dependencias estándar?
Una vez activado el entorno, ejecutas pip install pero con un detalle importante: agregas [standard] al nombre del paquete para traer las dependencias recomendadas [1:00].
Si escribes el comando sin comillas, la terminal interpreta los corchetes y falla. La solución es envolver el nombre entre comillas dobles, así:
bash pip install "fastapi[standard]"
Esto instala FastAPI más una serie de paquetes que necesitas para correr la aplicación localmente [1:30]. Entre ellos están:
FastAPI usa estos paquetes para generar automáticamente la documentación de tu API, así que tenerlos desde el inicio te ahorra dolores de cabeza más adelante.
¿Cómo crear tu primer endpoint con FastAPI?
Con el entorno listo, creas una carpeta llamada curso-fastapi-project y dentro un archivo main.py. Ese archivo va a contener toda la aplicación [2:30].
El código mínimo se ve así:
python from fastapi import FastAPI
app = FastAPI()
@app.get("/") def root(): return {"message": "Hola, mundo"}
Fíjate en tres detalles. Primero, FastAPI se importa con F mayúscula porque es una clase. Segundo, la instancia app es la que vas a usar para registrar todos los endpoints. Tercero, el decorador @app.get("/") le dice a FastAPI que ese método responde a peticiones GET en la ruta raíz [3:15].
¿Qué es un decorador en FastAPI? Es la sintaxis con
@que conecta una función con un método HTTP y una ruta específica. Sin él, FastAPI no sabe que tu función es un endpoint.
¿Cómo levantar el servidor de desarrollo?
FastAPI incluye un comando directo para correr la aplicación: fastapi dev. Al ejecutarlo, la terminal te muestra varios bloques de información útil [4:20].
Entre lo que aparece en el output destacan:
main.py./docs al final.La documentación se genera con Swagger sobre el estándar OpenAPI. Si entras a localhost/docs ves la interfaz visual con cada endpoint, sus parámetros y los tipos de respuesta. Para el ejemplo del Hola, mundo, la respuesta documentada es un código 200 con un string [5:10].
¿Qué ventajas tiene el modo desarrollo de FastAPI?
El comando fastapi dev corre el servidor en modo desarrollo, lo que activa la recarga automática. Cada vez que guardas un cambio en el código, el servidor se apaga y se vuelve a iniciar solo [6:00].
Por ejemplo, si cambias el mensaje de Hola, mundo a Hola, Luis y guardas, la terminal muestra el reinicio en tiempo real. No tienes que detener y levantar el servidor manualmente para ver cada modificación reflejada.
La terminal también te muestra qué archivo está siendo observado y la ruta donde viven los archivos que disparan la recarga. Es una funcionalidad pensada para iterar rápido sin fricción.
Reto: devuelve la hora actual desde un endpoint
Con tu proyecto configurado, ya tienes la base para construir una API completa. El plan del curso es desarrollar una API que permita crear cuentas de cobro para tus clientes, endpoint por endpoint, conectando con bases de datos para administrar la información [7:30].
Como práctica, crea un nuevo endpoint que devuelva la hora exacta del momento en que se hace el request. Puedes apoyarte en el módulo datetime de Python y retornar el valor dentro de un diccionario, igual que en el ejemplo del Hola, mundo.
¿Te animas a compartir tu solución en los comentarios?
Configurar FastAPI desde cero requiere tres pasos básicos: crear un entorno virtual, instalar el framework con sus dependencias estándar y levantar tu primer endpoint con Uvicorn. Si estás empezando con APIs en Python, esta guía te muestra el flujo mínimo para tener un servidor corriendo en minutos.
Un entorno virtual aísla las dependencias de tu proyecto para que no choquen con las de otros proyectos en tu máquina. Es el primer paso obligatorio antes de tocar cualquier framework de Python [0:08].
Para crearlo, abres la terminal y ejecutas el módulo venv de Python dentro de una carpeta llamada curso-fastapi. Después lo activas con source apuntando al ejecutable activate que vive en la carpeta bin del entorno [0:25].
¿Qué hace un entorno virtual en Python? Crea un espacio aislado donde instalas paquetes solo para ese proyecto. Así evitas que las versiones de una librería rompan otros proyectos que usan versiones distintas.
Una vez activado el entorno, ejecutas pip install pero con un detalle importante: agregas [standard] al nombre del paquete para traer las dependencias recomendadas [1:00].
Si escribes el comando sin comillas, la terminal interpreta los corchetes y falla. La solución es envolver el nombre entre comillas dobles, así:
bash pip install "fastapi[standard]"
Esto instala FastAPI más una serie de paquetes que necesitas para correr la aplicación localmente [1:30]. Entre ellos están:
FastAPI usa estos paquetes para generar automáticamente la documentación de tu API, así que tenerlos desde el inicio te ahorra dolores de cabeza más adelante.
Con el entorno listo, creas una carpeta llamada curso-fastapi-project y dentro un archivo main.py. Ese archivo va a contener toda la aplicación [2:30].
El código mínimo se ve así:
python from fastapi import FastAPI
app = FastAPI()
@app.get("/") def root(): return {"message": "Hola, mundo"}
Fíjate en tres detalles. Primero, FastAPI se importa con F mayúscula porque es una clase. Segundo, la instancia app es la que vas a usar para registrar todos los endpoints. Tercero, el decorador @app.get("/") le dice a FastAPI que ese método responde a peticiones GET en la ruta raíz [3:15].
¿Qué es un decorador en FastAPI? Es la sintaxis con
@que conecta una función con un método HTTP y una ruta específica. Sin él, FastAPI no sabe que tu función es un endpoint.
FastAPI incluye un comando directo para correr la aplicación: fastapi dev. Al ejecutarlo, la terminal te muestra varios bloques de información útil [4:20].
Entre lo que aparece en el output destacan:
main.py./docs al final.La documentación se genera con Swagger sobre el estándar OpenAPI. Si entras a localhost/docs ves la interfaz visual con cada endpoint, sus parámetros y los tipos de respuesta. Para el ejemplo del Hola, mundo, la respuesta documentada es un código 200 con un string [5:10].
El comando fastapi dev corre el servidor en modo desarrollo, lo que activa la recarga automática. Cada vez que guardas un cambio en el código, el servidor se apaga y se vuelve a iniciar solo [6:00].
Por ejemplo, si cambias el mensaje de Hola, mundo a Hola, Luis y guardas, la terminal muestra el reinicio en tiempo real. No tienes que detener y levantar el servidor manualmente para ver cada modificación reflejada.
La terminal también te muestra qué archivo está siendo observado y la ruta donde viven los archivos que disparan la recarga. Es una funcionalidad pensada para iterar rápido sin fricción.
Con tu proyecto configurado, ya tienes la base para construir una API completa. El plan del curso es desarrollar una API que permita crear cuentas de cobro para tus clientes, endpoint por endpoint, conectando con bases de datos para administrar la información [7:30].
Como práctica, crea un nuevo endpoint que devuelva la hora exacta del momento en que se hace el request. Puedes apoyarte en el módulo datetime de Python y retornar el valor dentro de un diccionario, igual que en el ejemplo del Hola, mundo.
¿Te animas a compartir tu solución en los comentarios?
Para activar el entorno virtual en Windows simplemente escribe:
curso-fastapi\Scripts\activate
Al ejecutar:
python3 -m venv venv curso-fastapi
no se están creando dos (venv y curso-fastapi) entornos virtuales?
Activar el entorno virtual en Windows:
curso-fastapi\Scripts\activate


Hago mi aporte sencillo:
from typing import Union
from fastapi import FastAPI
#Librerias para la fecha y hora
from datetime import date
from datetime import datetime
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/date")
def read_date():
now = datetime.now()
format = now.strftime('%d/%m/%Y')
return {"Date": format} # Fecha actual en formato dd/mm/yyyy
@app.get("/time")
def read_time():
now = datetime.now()
format = now.strftime('%H:%M:%S')
return {"Time": format} # Hora actual en formato hh:mm:ss
hice esto por la actividad :
from fastapi import FastAPI
from datetime import date, datetime
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello, luis!"}
@app.get("/datetime")
async def get_datetime():
currentDate = date.today()
currentTime = datetime.now().time()
datetimeDetail = {
"date": currentDate,
"time": currentTime
}
return {"datetime": datetimeDetail}
Pueden instalar utilizando uv:
uv init awesome-project --bare
cd awesome-project
uv add "fastapi[standard]"
Para gestionar ambientes virtuales les recomiendo uv. Es un gestor de paquetes de Python que les ayuda a gestionar dependencias, versiones, ambientes virtuales, etc.
Les dejo la documentación por acá
tengo el siguiente error y no se a que se debe ya inicie el entorno virtual pero al querer ejecutar el pip para instalar los paquetes me aparece el siguiente error

El comando pip install "fastapi[standard]" instala FastAPI junto con dependencias adicionales cruciales como Uvicorn, Jinja y Markdown. Uvicorn es fundamental para correr tu aplicación como un servidor web, mientras que otros paquetes facilitan funciones como la generación automática de documentación.