0% encontró este documento útil (0 votos)
0 vistas2 páginas

05 API Rest Fastapi

El documento describe cómo construir una API REST sencilla utilizando FastAPI, incluyendo la validación de datos y la creación y consulta de registros. Se presentan los requisitos, el código completo para la implementación, y se destacan puntos clave como el uso de almacenamiento en memoria para fines didácticos. Además, se menciona que en un entorno productivo se debe considerar el uso de una base de datos y la implementación de autenticación y logging.

Cargado por

Francisco Lozano
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
0 vistas2 páginas

05 API Rest Fastapi

El documento describe cómo construir una API REST sencilla utilizando FastAPI, incluyendo la validación de datos y la creación y consulta de registros. Se presentan los requisitos, el código completo para la implementación, y se destacan puntos clave como el uso de almacenamiento en memoria para fines didácticos. Además, se menciona que en un entorno productivo se debe considerar el uso de una base de datos y la implementación de autenticación y logging.

Cargado por

Francisco Lozano
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Python 05 - API REST con FastAPI

Objetivo
Construir una API REST sencilla con validacion de datos, creacion y consulta de registros, manejo de errores
y documentacion automatica.

Requisitos
Python 3.10+; fastapi; pydantic; uvicorn.

Concepto
FastAPI permite exponer logica Python mediante endpoints HTTP. Pydantic valida automaticamente los
datos recibidos y genera esquemas que FastAPI utiliza para construir documentacion OpenAPI interactiva.

Codigo completo
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel, Field

# ------------------------------------------------------------
# 1. CREAR APLICACION
# ------------------------------------------------------------
app = FastAPI(
title="API de Clientes",
version="1.0.0",
)

# ------------------------------------------------------------
# 2. MODELOS DE DATOS
# ------------------------------------------------------------
class ClienteEntrada(BaseModel):
nombre: str = Field(min_length=2)
edad: int = Field(ge=0, le=120)
ciudad: str

class ClienteSalida(ClienteEntrada):
id_cliente: int

# Base de datos simulada en memoria.


clientes = {}
secuencia_id = 1

# ------------------------------------------------------------
# 3. ENDPOINT DE SALUD
# ------------------------------------------------------------
@[Link]("/health")
def health():
return {"status": "ok"}

# ------------------------------------------------------------
# 4. CREAR CLIENTE
# ------------------------------------------------------------
@[Link](
"/clientes",
response_model=ClienteSalida
)
def crear_cliente(cliente: ClienteEntrada):
global secuencia_id

nuevo = {
"id_cliente": secuencia_id,
**cliente.model_dump(),
}

clientes[secuencia_id] = nuevo
secuencia_id += 1

return nuevo

Pagina 1
# ------------------------------------------------------------
# 5. CONSULTAR CLIENTE
# ------------------------------------------------------------
@[Link](
"/clientes/{id_cliente}",
response_model=ClienteSalida
)
def consultar_cliente(id_cliente: int):
if id_cliente not in clientes:
raise HTTPException(
status_code=404,
detail="Cliente no encontrado"
)

return clientes[id_cliente]

# ------------------------------------------------------------
# 6. LISTAR CLIENTES
# ------------------------------------------------------------
@[Link]("/clientes")
def listar_clientes():
return list([Link]())

# ------------------------------------------------------------
# 7. EJECUCION
# ------------------------------------------------------------
# Guardar como [Link] y ejecutar:
#
# uvicorn main:app --reload
#
# Documentacion interactiva:
# [Link]

Puntos clave
La estructura utiliza almacenamiento en memoria solo con fines didacticos. En un sistema productivo, la
capa de persistencia deberia reemplazarse por una base de datos y deberian agregarse autenticacion,
logging, pruebas y configuracion por ambiente.

Pagina 2

También podría gustarte