Source code for config.cors

"""
Конфигурация CORS для FastAPI-приложения GONETS.

Модуль инкапсулирует добавление middleware `CORSMiddleware` со списком
разрешённых источников (origins), характерных для локальной разработки и
типовых портов фронтенда (например, Vite/React на 5173/5174, dev-серверы).

Использование:
    cors_config = CORSMiddlewareConfig(app)
    cors_config.add_cors_middleware()

Поведение:
 - Разрешены все методы (`allow_methods=["*"]`) и заголовки (`allow_headers=["*"]`).
 - Разрешены креденшлы (`allow_credentials=True`) для работы с куками (локаль и др.).
 - При необходимости список `origins` можно расширить или параметризовать
   на основе конфигурационного файла окружения.
"""
from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware


[docs] class CORSMiddlewareConfig: """ Класс для настройки CORS политики в FastAPI """ def __init__(self, app: FastAPI) -> None: """Инициализируем приложение FastAPI и список допустимых CORS-оригинов""" self.app = app self.origins = [ "http://localhost.tiangolo.com", "https://localhost.tiangolo.com", "http://localhost", "http://localhost:8080", "http://localhost:5174", "http://localhost:5173", ]
[docs] def add_cors_middleware(self) -> None: """Добавляем CORS в приложение FastAPI""" self.app.add_middleware( CORSMiddleware, allow_origins=self.origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"], )