routes.py 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. """
  2. 路由注册:集中管理所有路由和中间件。
  3. """
  4. import datetime
  5. from fastapi import FastAPI, HTTPException
  6. from fastapi.responses import JSONResponse
  7. from fastapi.middleware.cors import CORSMiddleware
  8. from views.construction_review.file_upload import file_upload_router
  9. from views.construction_review.review_results import review_results_router
  10. from views.construction_review.launch_review import launch_review_router
  11. from views.construction_review.task_control import task_control_router
  12. from views.construction_review.desensitize_api import desensitize_router
  13. from views.construction_write.outline_views import outline_router
  14. from views.construction_write.content_completion import content_completion_router
  15. from views.construction_write.regenerate_views import regenerate_outline_router
  16. from views.construction_write.task_cancel_views import task_cancel_router
  17. def register_routes(app: FastAPI):
  18. """在 app 上注册所有路由和中间件。"""
  19. app.add_middleware(
  20. CORSMiddleware,
  21. allow_origins=["*"],
  22. allow_credentials=True,
  23. allow_methods=["*"],
  24. allow_headers=["*"],
  25. )
  26. app.include_router(file_upload_router)
  27. app.include_router(review_results_router)
  28. app.include_router(launch_review_router)
  29. app.include_router(task_control_router)
  30. app.include_router(desensitize_router)
  31. app.include_router(outline_router)
  32. app.include_router(content_completion_router)
  33. app.include_router(regenerate_outline_router)
  34. app.include_router(task_cancel_router)
  35. @app.exception_handler(HTTPException)
  36. async def http_exception_handler(request, exc):
  37. return JSONResponse(status_code=exc.status_code, content=exc.detail)
  38. @app.get("/health", tags=["系统状态"])
  39. async def health_check():
  40. return {"status": "healthy", "timestamp": datetime.datetime.now().isoformat()}
  41. @app.get("/celery/status", tags=["系统状态"])
  42. async def get_celery_status():
  43. from server.app import app_factory
  44. status = app_factory.celery_manager.get_status()
  45. return {"celery_worker": status, "timestamp": datetime.datetime.now().isoformat()}
  46. @app.get("/api/docs/info", tags=["系统状态"])
  47. async def api_info():
  48. return {
  49. "title": "Agent API - 施工方案审查系统",
  50. "version": "0.3",
  51. "docs_urls": {"swagger_ui": "/docs", "redoc": "/redoc", "openapi_json": "/openapi.json"},
  52. }