from fastapi import FastAPI, Query from fastapi.middleware.cors import CORSMiddleware import json from pathlib import Path app = FastAPI() # CORS configuration app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Load data once data_file = Path(__file__).resolve().parent.parent / "data" / "families.json" with data_file.open("r", encoding="utf-8") as f: families = json.load(f) @app.get("/search") def search_families(family: str = Query(..., min_length=1)): query = family.lower() matches = [f for f in families if query in f["family"].lower()] return matches if __name__ == "__main__": import uvicorn uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True)