API RESTful: FAST API

2. FastAPI básico + Swagger

2.1. main.py

from fastapi import FastAPI
from pydantic import BaseModel, Field

app = FastAPI(
    title="Demo FastAPI (sin BD)",
    description="Primero Swagger, luego MySQL",
    version="1.0.0"
)

class ProductoCreate(BaseModel):
    nombre: str = Field(min_length=1, max_length=100)
    precio: float = Field(gt=0)
    stock: int = Field(ge=0, default=0)

@app.get("/")
def root():
    return {"ok": True, "mensaje": "FastAPI funcionando"}

@app.post("/productos")
def crear_producto(producto: ProductoCreate):
    # Simulación: devolvemos lo recibido + un id fijo
    return {"id": 1, **producto.model_dump()}