/
JuliaR
/
WordMaster
Обзор
Документация
Войти
/
JuliaR
/
WordMaster
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/main.py
72 строки
2 KB
JuliaR
app/main.py
11 дек 2025, 17:27
11 дек 2025, 17:27
4d8b558
Код
Авторство
О чём код?
from fastapi import FastAPI, Depends, HTTPException from fastapi.middleware.cors import CORSMiddleware from fastapi.staticfiles import StaticFiles from contextlib import asynccontextmanager from app.core.config import settings from app.api.v1.api import api_router from app.db.session import engine, Base from app.core.logging import setup_logging import logging logger = logging.getLogger(__name__) @asynccontextmanager async def lifespan(app: FastAPI): """Управление жизненным циклом приложения""" logger.info("Starting application...") # Создаем таблицы в базе данных async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) yield logger.info("Shutting down application...") await engine.dispose() app = FastAPI( title="WordMaster API", description="Система управления персональными словарными коллекциями", version="1.0.0", openapi_url=f"{settings.API_V1_STR}/openapi.json", lifespan=lifespan ) # Настройка CORS app.add_middleware( CORSMiddleware, allow_origins=settings.BACKEND_CORS_ORIGINS, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Подключаем роутеры app.include_router(api_router, prefix=settings.API_V1_STR) # Статические файлы app.mount("/static", StaticFiles(directory="static"), name="static") @app.get("/") async def root(): return { "message": "Welcome to WordMaster API", "version": "1.0.0", "docs": "/docs", "redoc": "/redoc" } @app.get("/health") async def health_check(): return {"status": "healthy", "service": "WordMaster API"} if __name__ == "__main__": import uvicorn uvicorn.run( "app.main:app", host=settings.HOST, port=settings.PORT, reload=settings.DEBUG )