Spaces:
Running
Running
| from fastapi import FastAPI, Request | |
| from fastapi.responses import RedirectResponse | |
| from fastapi.routing import APIRoute | |
| from .config import settings | |
| from .routes.main import api_router | |
| def create_app() -> FastAPI: | |
| app = FastAPI( | |
| title="Leaderboard API", | |
| description="API for the Leaderboard", | |
| version="0.1.0", | |
| docs_url=f"{settings.API_V1_STR}/docs", | |
| openapi_url=f"{settings.API_V1_STR}/openapi.json", | |
| generate_unique_id_function=custom_generate_unique_id, | |
| ) | |
| app.include_router(api_router, prefix=settings.API_V1_STR) | |
| app.add_route("/", _redirect_to_docs, methods=["GET"]) | |
| return app | |
| def custom_generate_unique_id(route: APIRoute) -> str: | |
| return f"{route.tags[0]}-{route.name}" | |
| async def _redirect_to_docs(_: Request): | |
| return RedirectResponse(url=f"{settings.API_V1_STR}/docs") | |