first commit
This commit is contained in:
74
backend/app/main.py
Normal file
74
backend/app/main.py
Normal file
@@ -0,0 +1,74 @@
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.middleware.trustedhost import TrustedHostMiddleware
|
||||
|
||||
from app.config.settings import settings
|
||||
from app.models.database import engine, Base
|
||||
from app.routes import user, api_key, algorithm, openai, gateway, services, data_management, monitoring, permissions, history, deployment, gitea, repositories
|
||||
|
||||
# 创建数据库表
|
||||
Base.metadata.create_all(bind=engine)
|
||||
|
||||
# 创建FastAPI应用
|
||||
app = FastAPI(
|
||||
title=settings.APP_NAME,
|
||||
version=settings.APP_VERSION,
|
||||
description="智能算法展示平台API",
|
||||
docs_url="/docs",
|
||||
redoc_url="/redoc",
|
||||
# 设置更大的上传限制
|
||||
max_form_data_parts=50000, # 允许最多50000个表单数据部分(包括文件)
|
||||
# 额外配置以绕过Starlette的默认限制
|
||||
)
|
||||
|
||||
# 手动配置Starlette的表单解析器限制
|
||||
from starlette.formparsers import MultiPartParser
|
||||
MultiPartParser.max_files = 50000
|
||||
MultiPartParser.max_fields = 50000
|
||||
|
||||
# 配置CORS
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=settings.CORS_ORIGINS,
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
# 注册路由
|
||||
app.include_router(user.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(api_key.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(algorithm.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(openai.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(gateway.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(services.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(data_management.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(monitoring.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(permissions.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(history.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(deployment.router)
|
||||
app.include_router(gitea.router, prefix=settings.API_V1_STR)
|
||||
app.include_router(repositories.router, prefix=settings.API_V1_STR)
|
||||
|
||||
|
||||
@app.get("/")
|
||||
async def root():
|
||||
"""根路径"""
|
||||
return {
|
||||
"message": "Welcome to 智能算法展示平台 API",
|
||||
"version": settings.APP_VERSION,
|
||||
"docs": "/docs"
|
||||
}
|
||||
|
||||
|
||||
@app.get("/health")
|
||||
async def health_check():
|
||||
"""健康检查"""
|
||||
return {"status": "healthy"}
|
||||
|
||||
|
||||
@app.get("/@vite/client")
|
||||
async def serve_vite_client():
|
||||
"""处理 @vite/client 请求,避免 404 错误"""
|
||||
from fastapi.responses import Response
|
||||
return Response("", media_type="application/javascript")
|
||||
Reference in New Issue
Block a user