Source code for hyd.backend.app
from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
import hyd.backend.util.patch_fastapi # dirty openapi.json hack
from hyd.backend.api import api_router
from hyd.backend.db import SessionMaker
from hyd.backend.frontend import footer_router, frontend_router
from hyd.backend.util.const import ROOT_PATH
app = FastAPI(root_path=ROOT_PATH)
# https://fastapi.tiangolo.com/tutorial/cors/
####################################################################################################
### Middleware
####################################################################################################
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
[docs]@app.middleware("http")
async def db_session_middleware(request: Request, call_next):
try:
request.state.db = SessionMaker()
return await call_next(request)
finally:
request.state.db.close()
####################################################################################################
### Route setup
####################################################################################################
app.include_router(api_router, prefix="/api")
app.include_router(frontend_router, prefix="/simple")
app.include_router(footer_router, prefix="/footer")