File size: 1,048 Bytes
31e8a9f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
"""FastAPI application entry point."""

from __future__ import annotations

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware

from app.api.logging import configure_json_logging
from app.api.middleware import RequestGuard
from app.api.routes import health, products, reviews
from app.config import settings


def create_app() -> FastAPI:
    """Construct the HTTP API without loading worker-owned ML models."""
    app = FastAPI(title="VERA API", version="1.0.0")
    configure_json_logging()
    app.add_middleware(
        CORSMiddleware,
        allow_origins=settings.cors_origins,
        allow_credentials=False,
        allow_methods=["GET", "POST"],
        allow_headers=["Content-Type", "Authorization", "X-Request-ID"],
        expose_headers=["X-Total-Count", "X-Request-ID", "Retry-After"],
    )
    app.add_middleware(RequestGuard, settings=settings)
    app.include_router(health.router)
    app.include_router(reviews.router)
    app.include_router(products.router)
    return app


app = create_app()