app_factory.py•1.11 kB
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from app.api import api_router
from app.core.config import settings
from pathlib import Path
def create_app() -> FastAPI:
    """
    FastAPI 애플리케이션 인스턴스를 생성하고 설정합니다.
    """
    app = FastAPI(
        title="MCP Server",
        description="Model Context Protocol Server for API Testing",
        version="0.1.0",
    )
    # CORS 설정
    app.add_middleware(
        CORSMiddleware,
        allow_origins=["*"],  # 개발 환경에서는 모든 출처 허용
        allow_credentials=True,
        allow_methods=["*"],
        allow_headers=["*"],
    )
    # API 라우터 등록
    app.include_router(api_router, prefix=settings.API_PREFIX)
    
    # 정적 파일 제공
    app.mount("/static", StaticFiles(directory="static"), name="static")
    
    # 업로드 디렉토리 마운트
    app.mount("/uploads", StaticFiles(directory=settings.UPLOAD_DIR), name="uploads")
    return app