Files
WQ_GUI/new/app/main.py

63 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
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"}