Files
threejs-redering-test/backend/app/api/v1/endpoints/model.py
2025-10-13 16:42:09 +09:00

36 lines
1.1 KiB
Python

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)