El Hola Mundo es el punto de partida clásico para aprender un framework: nos permite verificar que la instalación funciona y entender la lógica básica.
En tu carpeta proyecto2
, creá un archivo llamado main.py
y escribí lo siguiente:
from fastapi import FastAPI # 1
app = FastAPI() # 2
@app.get("/") # 3
def read_root(): # 4
return {"mensaje": "Hola FastAPI!"} # 5
from fastapi import FastAPI
Importamos la clase FastAPI
del paquete fastapi
. Esta clase es la que nos permite crear una aplicación web en Python.
app = FastAPI()
Creamos una instancia de FastAPI llamada app
. Esta variable app
es lo que Uvicorn necesita para arrancar el servidor. Por convención suele llamarse app
, aunque podría tener otro nombre.
@app.get("/")
Este es un decorador que indica que la función siguiente va a manejar las peticiones GET a la ruta /
. En otras palabras: si alguien entra a http://127.0.0.1:8000/
, se ejecuta la función read_root
.
def read_root():
Definimos la función que se ejecutará cuando alguien acceda a la raíz /
. El nombre read_root
es libre, pero conviene que sea descriptivo.
return {"mensaje": "Hola FastAPI!"}
La función devuelve un diccionario de Python. FastAPI lo convierte automáticamente a JSON (JavaScript Object Notation), el formato estándar en APIs. La respuesta que recibirá el cliente será:
{"mensaje": "Hola FastAPI!"}
En PowerShell, con tu entorno virtual activado (.\.venv\Scripts\activate
), ejecutá:
uvicorn main:app --reload
Explicación de parámetros:
main
: nombre del archivo main.py
(sin la extensión).app
: la variable que contiene la aplicación FastAPI.--reload
: reinicia automáticamente el servidor cada vez que guardes cambios (útil en desarrollo).Si todo va bien, verás algo como:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Application startup complete.
Abrí tu navegador en: http://127.0.0.1:8000/
Resultado:
{"mensaje": "Hola FastAPI!"}
Probar la documentación automática:
app = FastAPI()
).@app.get("/")
).Agregá este endpoint debajo de read_root
en tu main.py
:
@app.get("/saludo/{nombre}")
def read_saludo(nombre: str):
return {"mensaje": f"Hola {nombre}, bienvenido a FastAPI!"}
Y probá en el navegador:
http://127.0.0.1:8000/saludo/Juan
Respuesta esperada:
{"mensaje": "Hola Juan, bienvenido a FastAPI!"}