Initial commit

This commit is contained in:
2025-10-13 15:00:54 +09:00
committed by 이민규
commit 3201c9e9f6
43 changed files with 5126 additions and 0 deletions

Binary file not shown.

View File

View File

@@ -0,0 +1,35 @@
import os
from fastapi import APIRouter, HTTPException
from fastapi.responses import FileResponse
from typing import List
router = APIRouter()
MODELS_DIRECTORY = "models"
@router.get("/models", response_model=List[str])
async def get_model_list():
"""
사용 가능한 모든 OBJ 모델의 이름 목록을 반환합니다.
"""
try:
files = os.listdir(MODELS_DIRECTORY)
obj_models = [f.split('.obj')[0] for f in files if f.endswith(".obj")]
return obj_models
except FileNotFoundError:
raise HTTPException(status_code=404, detail="Models directory not found")
@router.get("/models/{model_name}")
async def get_model(model_name: str):
"""
지정된 이름의 OBJ 모델 파일을 반환합니다.
"""
if not model_name.endswith(".obj"):
model_name += ".obj"
file_path = os.path.join(MODELS_DIRECTORY, model_name)
if not os.path.exists(file_path):
raise HTTPException(status_code=404, detail="Model not found")
return FileResponse(file_path, media_type='application/octet-stream', filename=model_name)

View File

View File

32
backend/app/main.py Normal file
View File

@@ -0,0 +1,32 @@
import logging
from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
from app.api.v1.endpoints import model
# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
app = FastAPI()
@app.middleware("http")
async def log_requests(request: Request, call_next):
logger.info(f"Incoming request: {request.method} {request.url.path}")
response = await call_next(request)
return response
# CORS 미들웨어 추가
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 모든 출처 허용
allow_credentials=True,
allow_methods=["*"], # 모든 HTTP 메소드 허용
allow_headers=["*"], # 모든 헤더 허용
)
app.include_router(model.router, prefix="/api/v1")
@app.get("/")
def read_root():
return {"Hello": "World"}