Bienvenido a Platzi

Daniel Esteban Huamán Lázaro

Daniel Esteban Huamán Lázaro

student
hace un año

Me salio así con la tarea que menciona :

import zoneinfo from fastapi import FastAPI from datetime import datetime from models import Customer, CustomerCreate, Transaction, Invoice # Definir la aplicación FastAPI app = FastAPI() # Endpoint raíz @app.get("/") async def root(): return {"message": "Hola, Daniel"} # Diccionario que mapea códigos ISO de países a sus respectivas zonas horarias country_timezones = { "CO": "America/Bogota", "US": "America/New_York", "IN": "Asia/Kolkata", "JP": "Asia/Tokyo", "DE": "Europe/Berlin", "FR": "Europe/Paris", "GB": "Europe/London", "AU": "Australia/Sydney", "BR": "America/Sao_Paulo", "ZA": "Africa/Johannesburg" } # Endpoint para obtener la hora actual en la zona horaria de un país especificado @app.get("/time/{iso_code}") async def time(iso_code: str): iso_code = iso_code.upper() timezone_str = country_timezones.get(iso_code) if timezone_str is None: return {"error": "Código ISO inválido"} tz = zoneinfo.ZoneInfo(timezone_str) return {"time": datetime.now(tz).isoformat()} # Endpoint para obtener la hora actual en la zona horaria de un país especificado con un formato especificado @app.get("/time/{iso_code}/{format_24h}") async def time_with_format(iso_code: str, format_24h: bool): iso_code = iso_code.upper() timezone_str = country_timezones.get(iso_code) if timezone_str is None: return {"error": "Código ISO inválido"} tz = zoneinfo.ZoneInfo(timezone_str) current_time = datetime.now(tz) if format_24h: formatted_time = current_time.strftime("%H:%M:%S") else: formatted_time = current_time.strftime("%I:%M:%S %p") return {"time": formatted_time} current_id: int = 0 db_customers: list[Customer] = [] # Endpoint para crear un cliente @app.post('/customers', response_model=Customer) async def create_customer(customer_data: CustomerCreate): customer = Customer.model_validate(customer_data.model_dump()) customer.id = len(db_customers) db_customers.append(customer) return customer @app.get("/customers", response_model=list[Customer]) async def list_customer(): return db_customers @app.post('/transactions') async def create_transaction(transaction_data: Transaction): return transaction_data @app.post('/invoices') async def create_invoice(invoice_data: Invoice): return invoice_data @app.get("/customers/{customer_id}", response_model=Customer) async def get_customer(customer_id: int): for customer in db_customers: if customer.id == customer_id: return customer return {"error": "Customer not found"}
No hay respuestas
Curso de FastAPI

Curso de FastAPI

Crea y conecta APIs modernas con FastAPI y Python. Estructura proyectos, valida datos, organiza modelos, añade autenticación, relaciones y pruebas, y optimiza consultas y rendimiento usando SQLModel y Pydantic.

Curso de FastAPI
Curso de FastAPI

Curso de FastAPI

Crea y conecta APIs modernas con FastAPI y Python. Estructura proyectos, valida datos, organiza modelos, añade autenticación, relaciones y pruebas, y optimiza consultas y rendimiento usando SQLModel y Pydantic.