from fastapi import FastAPI from starlette.middleware.authentication import AuthenticationMiddleware import uvicorn from routers import chargepoint_v1, ocpp_v1 from database import engine, Base from util.websocket_auth_backend import BasicAuthBackend Base.metadata.create_all(bind=engine) def create_ocpp_app(): app_ocpp = FastAPI( responses={404: {"description": "Not found"}}, ) app_ocpp.include_router(ocpp_v1.router) app_ocpp.add_middleware(AuthenticationMiddleware, backend=BasicAuthBackend()) return app_ocpp def create_app(): app = FastAPI( responses={404: {"description": "Not found"}}, ) app.include_router(chargepoint_v1.router, prefix="/v1") app.mount(path="/v1/ocpp", app=create_ocpp_app()) return app app = create_app() if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000, log_level="info")