63 lines
2.3 KiB
Python
63 lines
2.3 KiB
Python
|
|
"""
|
|||
|
|
WQ_GUI FastAPI 后端入口
|
|||
|
|
=======================
|
|||
|
|
|
|||
|
|
应用启动与全局中间件配置:
|
|||
|
|
- CORS:开发阶段允许所有来源,方便本地前端(Vite / Webpack dev server)联调
|
|||
|
|
- 路由:通过 include_router 挂载 app/api/endpoints.py 中的业务接口
|
|||
|
|
|
|||
|
|
业务接口说明:
|
|||
|
|
POST /api/process/deglint 提交去耀斑处理任务,立即返回 task_id
|
|||
|
|
GET /api/tasks/{task_id} 查询指定任务的状态与结果
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
from typing import Dict
|
|||
|
|
|
|||
|
|
from fastapi import FastAPI
|
|||
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|||
|
|
|
|||
|
|
from app.api.endpoints import router as deglint_router
|
|||
|
|
from app.api.modeling import router as modeling_router
|
|||
|
|
|
|||
|
|
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
# FastAPI 应用实例
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
app = FastAPI(
|
|||
|
|
title="WQ_GUI Backend",
|
|||
|
|
description="高光谱影像去耀斑处理 API",
|
|||
|
|
version="0.2.0",
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
# CORS 中间件
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
# 开发阶段:放开所有来源、方法和头部,方便本地前端(任意端口)联调。
|
|||
|
|
# 生产环境务必收敛 allow_origins 为前端真实域名,避免安全风险。
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
app.add_middleware(
|
|||
|
|
CORSMiddleware,
|
|||
|
|
allow_origins=["*"],
|
|||
|
|
allow_credentials=True,
|
|||
|
|
allow_methods=["*"],
|
|||
|
|
allow_headers=["*"],
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
# 路由注册
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
# 统一以 /api 为前缀,便于将来做版本管理(如 /api/v1、/api/v2)。
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
app.include_router(deglint_router, prefix="/api")
|
|||
|
|
app.include_router(modeling_router, prefix="/api")
|
|||
|
|
|
|||
|
|
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
# 根路径健康检查(方便本地调试,非业务必需)
|
|||
|
|
# ---------------------------------------------------------------------------
|
|||
|
|
@app.get("/")
|
|||
|
|
async def root() -> Dict[str, str]:
|
|||
|
|
return {"service": "WQ_GUI Backend", "status": "ok"}
|