26 lines
851 B
Python
26 lines
851 B
Python
"""FastAPI application entrypoint."""
|
|
|
|
from fastapi import FastAPI
|
|
|
|
from app.config import Settings, get_settings
|
|
from app.controllers.v1.delivery import router as delivery_router
|
|
from app.runtime.logging import configure_logging
|
|
from app.runtime.metrics import configure_metrics
|
|
from app.runtime.tracing import configure_tracing
|
|
|
|
|
|
def create_app(settings: Settings | None = None) -> FastAPI:
|
|
configure_logging()
|
|
resolved_settings = settings or get_settings()
|
|
configure_metrics(resolved_settings.observability)
|
|
|
|
application = FastAPI(title="G2S Aggregator", version="0.1.0")
|
|
application.state.settings = resolved_settings
|
|
|
|
application.include_router(delivery_router, prefix=resolved_settings.controller.api_prefix)
|
|
configure_tracing(application, resolved_settings.observability)
|
|
return application
|
|
|
|
|
|
app = create_app()
|