From ad92974ccca4c92cfc57ef9726f9d3714978e926 Mon Sep 17 00:00:00 2001 From: Chenyme <118253778+chenyme@users.noreply.github.com> Date: Mon, 16 Feb 2026 01:06:03 +0800 Subject: [PATCH] rrefactor: change admin and public API routers to compatible vercel --- app/api/v1/{admin => admin_api}/__init__.py | 6 +++--- app/api/v1/{admin => admin_api}/cache.py | 0 app/api/v1/{admin => admin_api}/config.py | 0 app/api/v1/{admin => admin_api}/token.py | 0 app/api/v1/{public => public_api}/__init__.py | 6 +++--- app/api/v1/{public => public_api}/imagine.py | 0 app/api/v1/{public => public_api}/video.py | 0 app/api/v1/{public => public_api}/voice.py | 0 main.py | 15 +++++++++++---- 9 files changed, 17 insertions(+), 10 deletions(-) rename app/api/v1/{admin => admin_api}/__init__.py (55%) rename app/api/v1/{admin => admin_api}/cache.py (100%) rename app/api/v1/{admin => admin_api}/config.py (100%) rename app/api/v1/{admin => admin_api}/token.py (100%) rename app/api/v1/{public => public_api}/__init__.py (54%) rename app/api/v1/{public => public_api}/imagine.py (100%) rename app/api/v1/{public => public_api}/video.py (100%) rename app/api/v1/{public => public_api}/voice.py (100%) diff --git a/app/api/v1/admin/__init__.py b/app/api/v1/admin_api/__init__.py similarity index 55% rename from app/api/v1/admin/__init__.py rename to app/api/v1/admin_api/__init__.py index 63db93d..1476337 100644 --- a/app/api/v1/admin/__init__.py +++ b/app/api/v1/admin_api/__init__.py @@ -2,9 +2,9 @@ from fastapi import APIRouter -from app.api.v1.admin.cache import router as cache_router -from app.api.v1.admin.config import router as config_router -from app.api.v1.admin.token import router as tokens_router +from app.api.v1.admin_api.cache import router as cache_router +from app.api.v1.admin_api.config import router as config_router +from app.api.v1.admin_api.token import router as tokens_router router = APIRouter() diff --git a/app/api/v1/admin/cache.py b/app/api/v1/admin_api/cache.py similarity index 100% rename from app/api/v1/admin/cache.py rename to app/api/v1/admin_api/cache.py diff --git a/app/api/v1/admin/config.py b/app/api/v1/admin_api/config.py similarity index 100% rename from app/api/v1/admin/config.py rename to app/api/v1/admin_api/config.py diff --git a/app/api/v1/admin/token.py b/app/api/v1/admin_api/token.py similarity index 100% rename from app/api/v1/admin/token.py rename to app/api/v1/admin_api/token.py diff --git a/app/api/v1/public/__init__.py b/app/api/v1/public_api/__init__.py similarity index 54% rename from app/api/v1/public/__init__.py rename to app/api/v1/public_api/__init__.py index 984bf0d..0190889 100644 --- a/app/api/v1/public/__init__.py +++ b/app/api/v1/public_api/__init__.py @@ -2,9 +2,9 @@ from fastapi import APIRouter -from app.api.v1.public.imagine import router as imagine_router -from app.api.v1.public.video import router as video_router -from app.api.v1.public.voice import router as voice_router +from app.api.v1.public_api.imagine import router as imagine_router +from app.api.v1.public_api.video import router as video_router +from app.api.v1.public_api.voice import router as voice_router router = APIRouter() diff --git a/app/api/v1/public/imagine.py b/app/api/v1/public_api/imagine.py similarity index 100% rename from app/api/v1/public/imagine.py rename to app/api/v1/public_api/imagine.py diff --git a/app/api/v1/public/video.py b/app/api/v1/public_api/video.py similarity index 100% rename from app/api/v1/public/video.py rename to app/api/v1/public_api/video.py diff --git a/app/api/v1/public/voice.py b/app/api/v1/public_api/voice.py similarity index 100% rename from app/api/v1/public/voice.py rename to app/api/v1/public_api/voice.py diff --git a/main.py b/main.py index 926d44e..c30905b 100644 --- a/main.py +++ b/main.py @@ -12,7 +12,14 @@ from pathlib import Path from dotenv import load_dotenv -env_file = Path(__file__).parent / ".env" +BASE_DIR = Path(__file__).resolve().parent +APP_DIR = BASE_DIR / "app" + +# Ensure the project root is on sys.path (helps when Vercel sets a different CWD) +if str(BASE_DIR) not in sys.path: + sys.path.insert(0, str(BASE_DIR)) + +env_file = BASE_DIR / ".env" if env_file.exists(): load_dotenv(env_file) @@ -30,8 +37,8 @@ from app.api.v1.image import router as image_router # noqa: E402 from app.api.v1.files import router as files_router # noqa: E402 from app.api.v1.models import router as models_router # noqa: E402 from app.services.token import get_scheduler # noqa: E402 -from app.api.v1.admin import router as admin_router -from app.api.v1.public import router as public_router +from app.api.v1.admin_api import router as admin_router +from app.api.v1.public_api import router as public_router from app.api.pages import router as pages_router from fastapi.staticfiles import StaticFiles @@ -118,7 +125,7 @@ def create_app() -> FastAPI: app.include_router(files_router, prefix="/v1/files") # 静态文件服务 - static_dir = Path(__file__).parent / "app" / "static" + static_dir = APP_DIR / "static" if static_dir.exists(): app.mount("/static", StaticFiles(directory=static_dir), name="static")