41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
from fastapi import FastAPI
|
|
from fastapi.staticfiles import StaticFiles
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
from app.core.config import settings
|
|
from app.core.database import init_db
|
|
from app.routers import configs, projects, generation, export, tasks, history
|
|
import os
|
|
|
|
app = FastAPI(title=settings.PROJECT_NAME)
|
|
|
|
# CORS
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"],
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
# Mount static files
|
|
static_dir = os.path.join(os.path.dirname(os.path.dirname(__file__)), "static")
|
|
if not os.path.exists(static_dir):
|
|
os.makedirs(static_dir)
|
|
app.mount("/static", StaticFiles(directory=static_dir), name="static")
|
|
|
|
# Include routers
|
|
app.include_router(configs.router, prefix=f"{settings.API_V1_STR}/configs", tags=["configs"])
|
|
app.include_router(projects.router, prefix=f"{settings.API_V1_STR}/projects", tags=["projects"])
|
|
app.include_router(generation.router, prefix=f"{settings.API_V1_STR}/generate", tags=["generation"])
|
|
app.include_router(export.router, prefix=f"{settings.API_V1_STR}/export", tags=["export"])
|
|
app.include_router(tasks.router, prefix=f"{settings.API_V1_STR}/tasks", tags=["tasks"])
|
|
app.include_router(history.router, prefix=f"{settings.API_V1_STR}/history", tags=["history"])
|
|
|
|
@app.on_event("startup")
|
|
def on_startup():
|
|
init_db()
|
|
|
|
@app.get("/")
|
|
def read_root():
|
|
return {"message": "Welcome to AI Comic Generator API"}
|