from fastapi import FastAPI, HTTPException from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import HTMLResponse from pydantic import BaseModel, Field from typing import List, Optional app = FastAPI(title="Quote Display API", version="1.0.0") app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], expose_headers=["Content-Disposition"], ) class Quote(BaseModel): text: str author: str class QuoteSet(BaseModel): title: str = "Quotes" quotes: List[Quote] def quote_html(title: str, quotes: List[dict]) -> str: quote_items = "" for quote in quotes: quote_items += f"""
"{quote['text']}"
— {quote['author']}POST to /display with:
{
"title": "My Quotes",
"quotes": [
{"text": "Hello world", "author": "Someone"}
]
}
"""
)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)