"""FastAPI 入口:健康检查 + 只读 API + 静态看板。""" from __future__ import annotations from pathlib import Path from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import FileResponse, HTMLResponse, Response from fastapi.staticfiles import StaticFiles from apps.api.routes import auth, health, meta, notify, samples, stats app = FastAPI( title="比特骆驼行情采集分析", description="market_intel — 只读行情采集与统计", version="0.1.0", ) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(health.router) app.include_router(auth.router, prefix="/api") app.include_router(meta.router, prefix="/api") app.include_router(samples.router, prefix="/api") app.include_router(stats.router, prefix="/api") app.include_router(notify.router, prefix="/api") _WEB_DIST = Path(__file__).resolve().parents[2] / "web" / "dist" _FALLBACK_HTML = """
API 已就绪。/health · /api/meta/latest
构建前端:cd web && npm i && npm run build