Spaces:
Running
Running
File size: 863 Bytes
b4929ca |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
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")
|