调整文档路径
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
"""MCP Auth Admin — FastAPI 主入口
|
||||
|
||||
鉴权统一走鼎捷云 IAM:请求头 digi-middleware-auth-user / digi-middleware-auth-app
|
||||
经 IAM /api/iam/v2/identity/token/analyze 校验。
|
||||
静态文件由前端构建产物提供(STATIC_DIR 指向)。
|
||||
"""
|
||||
|
||||
from contextlib import asynccontextmanager
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import FastAPI
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
|
||||
from app.core.config import settings
|
||||
from app.core.db import close_pool, get_pool
|
||||
from app.core.iam import close_iam_client
|
||||
from app.core.redis import close_redis
|
||||
from app.routers import auth, services, stats, tokens, verify
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
async def lifespan(app: FastAPI):
|
||||
await get_pool()
|
||||
yield
|
||||
await close_pool()
|
||||
await close_iam_client()
|
||||
await close_redis()
|
||||
|
||||
|
||||
app = FastAPI(
|
||||
title="MCP Auth Admin",
|
||||
description="MCP 服务 Bearer Token 动态鉴权管理后台",
|
||||
version="1.0.0",
|
||||
# 反向代理路径前缀:带前缀的外层 nginx(如 /mcp-auth-api)后,
|
||||
# OpenAPI servers 与 Swagger 加载的 openapi.json 会带上该前缀,文档才能正确渲染
|
||||
root_path=settings.ROOT_PATH,
|
||||
lifespan=lifespan,
|
||||
)
|
||||
|
||||
# CORS(开发期前端 dev server 跨域;生产同源可不配)
|
||||
app.add_middleware(
|
||||
CORSMiddleware,
|
||||
allow_origins=["*"],
|
||||
allow_credentials=True,
|
||||
allow_methods=["*"],
|
||||
allow_headers=["*"],
|
||||
)
|
||||
|
||||
# API 路由
|
||||
app.include_router(auth.router)
|
||||
app.include_router(tokens.router)
|
||||
app.include_router(services.router)
|
||||
app.include_router(stats.router)
|
||||
app.include_router(verify.router)
|
||||
|
||||
|
||||
@app.get("/api/health")
|
||||
async def health():
|
||||
return {"status": "ok"}
|
||||
|
||||
|
||||
# 静态文件(前端构建产物),必须在所有 API 路由之后挂载
|
||||
static_dir = Path(settings.STATIC_DIR)
|
||||
if static_dir.exists():
|
||||
app.mount("/", StaticFiles(directory=str(static_dir), html=True), name="static")
|
||||
Reference in New Issue
Block a user