39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
from fastapi import FastAPI, APIRouter, Request
|
|
from fastapi.templating import Jinja2Templates
|
|
from fastapi.staticfiles import StaticFiles
|
|
from security import security_router
|
|
import uvicorn
|
|
|
|
app = FastAPI()
|
|
app.mount("/static", StaticFiles(directory="static"), name="static")
|
|
app.include_router(security_router)
|
|
|
|
templates = Jinja2Templates(directory="templates")
|
|
|
|
|
|
@app.get("/")
|
|
async def read_root(request: Request):
|
|
routes = []
|
|
for route in request.app.routes:
|
|
if route.name in ["openapi", "swagger_ui_html", "swagger_ui_redirect", "redoc_html", "static", "read_root"]:
|
|
continue
|
|
routes.append({
|
|
"path": getattr(route, "path", "N/A"),
|
|
"name": getattr(route, "name", "N/A"),
|
|
"methods": list(route.methods) if hasattr(route, "methods") else []
|
|
})
|
|
|
|
return templates.TemplateResponse(
|
|
request=request,
|
|
name="index.html",
|
|
context={"routes": routes}
|
|
)
|
|
|
|
if __name__ == "__main__":
|
|
uvicorn.run(
|
|
"main:app",
|
|
host="0.0.0.0",
|
|
port=8080,
|
|
reload=True
|
|
)
|