from fastapi import FastAPI, Query from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import JSONResponse import plotly.io as pio from src.streamlit_app import load_data, create_bar_chart api = FastAPI(title="Leaderboard API") api.add_middleware( CORSMiddleware, allow_origins=["https://leggedrobotics.github.io"], allow_methods=["*"], allow_headers=["*"], ) @api.get("/chart") def get_chart(view: str = Query("Total Score", description="Chart type")): """Return chart JSON for the given view type.""" df = load_data() fig = create_bar_chart(df, view) fig_json = pio.to_json(fig) return JSONResponse(content=fig_json)