""" 路由注册:集中管理所有路由和中间件。 """ import datetime from fastapi import FastAPI, HTTPException from fastapi.responses import JSONResponse from fastapi.middleware.cors import CORSMiddleware from views.construction_review.file_upload import file_upload_router from views.construction_review.review_results import review_results_router from views.construction_review.launch_review import launch_review_router from views.construction_review.task_control import task_control_router from views.construction_review.desensitize_api import desensitize_router from views.construction_write.outline_views import outline_router from views.construction_write.content_completion import content_completion_router from views.construction_write.regenerate_views import regenerate_outline_router from views.construction_write.task_cancel_views import task_cancel_router def register_routes(app: FastAPI): """在 app 上注册所有路由和中间件。""" app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) app.include_router(file_upload_router) app.include_router(review_results_router) app.include_router(launch_review_router) app.include_router(task_control_router) app.include_router(desensitize_router) app.include_router(outline_router) app.include_router(content_completion_router) app.include_router(regenerate_outline_router) app.include_router(task_cancel_router) @app.exception_handler(HTTPException) async def http_exception_handler(request, exc): return JSONResponse(status_code=exc.status_code, content=exc.detail) @app.get("/health", tags=["系统状态"]) async def health_check(): return {"status": "healthy", "timestamp": datetime.datetime.now().isoformat()} @app.get("/celery/status", tags=["系统状态"]) async def get_celery_status(): from server.app import app_factory status = app_factory.celery_manager.get_status() return {"celery_worker": status, "timestamp": datetime.datetime.now().isoformat()} @app.get("/api/docs/info", tags=["系统状态"]) async def api_info(): return { "title": "Agent API - 施工方案审查系统", "version": "0.3", "docs_urls": {"swagger_ui": "/docs", "redoc": "/redoc", "openapi_json": "/openapi.json"}, }