oramap/backend/main.py

33 lines
793 B
Python

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)