from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.responses import FileResponse from pathlib import Path # Импорт роутера from .routes.license_routes import router as license_router # Путь к корню проекта BASE_DIR = Path(__file__).resolve().parent def create_app() -> FastAPI: """ Создание и конфигурация FastAPI приложения. Подключает роутеры и статические файлы. """ apps: FastAPI = FastAPI( title="License Generator API", description="API для генерации лицензий Custom.mxtpro", version="1.0.0" ) # Подключение роутеров apps.include_router(license_router, prefix="/api") # Монтируем статические папки фронтенда apps.mount( "/static/css", StaticFiles(directory=BASE_DIR.parent / "frontend" / "css"), name="css" ) apps.mount( "/static/js", StaticFiles(directory=BASE_DIR.parent / "frontend" / "js"), name="js" ) apps.mount( "/static/assets", StaticFiles(directory=BASE_DIR.parent / "frontend" / "assets"), name="assets" ) # Отдача главной страницы @apps.get("/", include_in_schema=False) def read_index() -> FileResponse: """ Отдает главную страницу сайта (index.html) """ index_file = BASE_DIR.parent / "frontend" / "templates" / "index.html" return FileResponse(index_file) return apps # Экземпляр приложения app: FastAPI = create_app()