|
"""Main FastAPI app instance declaration.""" |
|
import fastapi |
|
from fastapi.middleware.cors import CORSMiddleware |
|
import structlog |
|
import uvicorn |
|
|
|
from app.core.config import settings |
|
from .core.middlewares import add_middlewares |
|
from app.router import api_router |
|
|
|
|
|
logger = structlog.get_logger() |
|
|
|
|
|
fastapi_app = fastapi.FastAPI( |
|
title=settings.PROJECT_NAME, |
|
version=settings.VERSION, |
|
description=settings.DESCRIPTION, |
|
openapi_url="/openapi.json", |
|
docs_url="/docs", |
|
redoc_url="/redoc", |
|
) |
|
|
|
|
|
fastapi_app.add_middleware( |
|
CORSMiddleware, |
|
allow_origins=["*"], |
|
allow_credentials=True, |
|
allow_methods=["*"], |
|
allow_headers=["*"], |
|
) |
|
|
|
fastapi_app.include_router(api_router) |
|
add_middlewares(fastapi_app) |
|
|
|
|
|
logger.info( |
|
"Application started", project=settings.PROJECT_NAME, version=settings.VERSION |
|
) |
|
|
|
if __name__ == "__main__": |
|
uvicorn.run( |
|
"main:fastapi_app", |
|
host=settings.UVICORN_HOST, |
|
port=settings.UVICORN_PORT, |
|
reload=True, |
|
) |
|
|