simple-ocpp-cs/backend/app/main.py

53 lines
1.4 KiB
Python
Raw Permalink Normal View History

2024-04-19 00:08:29 +02:00
from dotenv import load_dotenv
from fastapi import APIRouter, FastAPI
2024-03-28 21:23:25 +01:00
from starlette.middleware.authentication import AuthenticationMiddleware
2024-04-19 00:08:29 +02:00
load_dotenv()
2024-03-28 21:23:25 +01:00
2024-04-19 00:08:29 +02:00
from app.routers import (
auth_v1,
2024-04-19 00:08:29 +02:00
chargepoint_v1,
id_token_v1,
me_v1,
2024-04-19 00:08:29 +02:00
meter_value_v1,
ocpp_v1,
transaction_v1,
user_v1
)
from app.security.websocket_auth_backend import BasicAuthBackend
2024-03-28 21:23:25 +01:00
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(
title="simple-ocpp-cs",
2025-03-14 00:19:22 +00:00
version="0.2.0",
summary="Simple implementation of a basic OCPP 2.0.1 compliant central system (backend) for EV charging stations",
2024-03-28 21:23:25 +01:00
responses={404: {"description": "Not found"}},
)
api_v1_router = APIRouter(
prefix="/api/v1"
)
api_v1_router.include_router(auth_v1.router)
api_v1_router.include_router(chargepoint_v1.router)
api_v1_router.include_router(id_token_v1.router)
api_v1_router.include_router(me_v1.router)
api_v1_router.include_router(user_v1.router)
api_v1_router.include_router(meter_value_v1.router)
api_v1_router.include_router(transaction_v1.router)
app.include_router(api_v1_router)
2024-03-28 21:23:25 +01:00
app.mount(path="/v1/ocpp", app=create_ocpp_app())
return app
app = create_app()