62 lines
2.5 KiB
Python
62 lines
2.5 KiB
Python
from fastapi import FastAPI
|
||
from loguru import logger
|
||
from contextlib import asynccontextmanager
|
||
|
||
# --- НОВЫЙ ИМПОРТ ---
|
||
from fastapi.middleware.cors import CORSMiddleware
|
||
|
||
from app.core.logging import setup_logging
|
||
from app.core.config import settings
|
||
from app.api.v1.endpoints import auth
|
||
from app.api.v1.endpoints import counters
|
||
|
||
# Вызываем настройку логирования в самом начале
|
||
setup_logging()
|
||
|
||
@asynccontextmanager
|
||
async def lifespan(app: FastAPI):
|
||
# ... (этот блок без изменений)
|
||
logger.info("Application startup...")
|
||
logger.info(f"Log level is set to: {settings.LOG_LEVEL}")
|
||
logger.info("Service is ready to accept requests.")
|
||
yield
|
||
logger.info("Application shutdown...")
|
||
|
||
app = FastAPI(
|
||
title="Marquiz Metrica Connector",
|
||
version="1.0.0",
|
||
description="Микросервис для автоматизации настройки Яндекс.Метрики для квизов.",
|
||
lifespan=lifespan
|
||
)
|
||
|
||
# --- НОВЫЙ БЛОК: НАСТРОЙКА CORS ---
|
||
# Список доменов, с которых разрешены запросы
|
||
origins = [
|
||
"https://test.mgforest.ru", # Наш тестовый frontend
|
||
"http://localhost", # Для локальной разработки
|
||
"http://localhost:8080", # Для локальной разработки
|
||
# !!! В будущем сюда нужно будет добавить домен самого Marquiz !!!
|
||
# "https://marquiz.ru",
|
||
]
|
||
|
||
app.add_middleware(
|
||
CORSMiddleware,
|
||
allow_origins=origins, # Разрешить запросы с этих доменов
|
||
allow_credentials=True, # Разрешить передачу cookie (на всякий случай)
|
||
allow_methods=["*"], # Разрешить ВСЕ методы (GET, POST, OPTIONS и т.д.)
|
||
allow_headers=["*"], # Разрешить ВСЕ заголовки
|
||
)
|
||
# ------------------------------------
|
||
|
||
|
||
# Подключаем роутеры (без изменений)
|
||
app.include_router(auth.router, prefix="/api/v1/auth", tags=["Authentication"])
|
||
app.include_router(counters.router, prefix="/api/v1/counters", tags=["Counters"])
|
||
|
||
@app.get("/", tags=["Health Check"])
|
||
def health_check():
|
||
# ... (этот блок без изменений)
|
||
logger.info("Health check endpoint was requested.")
|
||
return {"status": "ok", "message": "Welcome to Marquiz Metrica Connector!"}
|
||
|
||
logger.info("FastAPI app instance created and configured.") |