Contenidos
Instalación de FastAPI
# Primero, instala FastAPI y Uvicorn usando pip
# pip install fastapi uvicorn
Crear una API simple
from fastapi import FastAPI
# Crear una instancia de FastAPI
app = FastAPI()
# Definir una ruta simple
@app.get("/")
def read_root():
return {"Hello": "World"}
# Definir una ruta con parámetros
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
Ejecutar el servidor
# Guarda el archivo anterior como main.py y ejecuta el servidor usando Uvicorn
# uvicorn main:app --reload
Usar parámetros de consulta y rutas
from fastapi import FastAPI
from typing import Optional
app = FastAPI()
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Optional[str] = None):
return {"item_id": item_id, "q": q}
@app.get("/users/{user_id}/items/{item_id}")
def read_user_item(user_id: int, item_id: int):
return {"user_id": user_id, "item_id": item_id}
Crear y usar modelos con Pydantic
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
@app.post("/items/")
def create_item(item: Item):
return {"item": item}
Manejo de errores
from fastapi import FastAPI, HTTPException
app = FastAPI()
@app.get("/divide/{x}/{y}")
def divide(x: int, y: int):
if y == 0:
raise HTTPException(status_code=400, detail="Division by zero is not allowed")
return {"result": x / y}

