main.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. """FastAPI application factory."""
  2. from fastapi import FastAPI
  3. from fastapi.middleware.cors import CORSMiddleware
  4. from app.config import get_settings
  5. settings = get_settings()
  6. def create_app() -> FastAPI:
  7. app = FastAPI(
  8. title="报销系统",
  9. version="1.0.0",
  10. docs_url="/api/docs",
  11. openapi_url="/api/openapi.json",
  12. )
  13. app.add_middleware(
  14. CORSMiddleware,
  15. allow_origins=["*"],
  16. allow_credentials=True,
  17. allow_methods=["*"],
  18. allow_headers=["*"],
  19. )
  20. from app.routers import auth, user, role, menu, expense_item, workflow, advance, reimburse, attachment, payment
  21. app.include_router(auth.router)
  22. app.include_router(user.router)
  23. app.include_router(role.router)
  24. app.include_router(menu.router)
  25. app.include_router(expense_item.router)
  26. app.include_router(workflow.router)
  27. app.include_router(advance.router)
  28. app.include_router(reimburse.router)
  29. app.include_router(attachment.router)
  30. app.include_router(payment.router)
  31. @app.get("/api/health")
  32. def health_check():
  33. return {"status": "ok"}
  34. return app
  35. app = create_app()
  36. if __name__ == "__main__":
  37. import uvicorn
  38. uvicorn.run(
  39. "app.main:app",
  40. host=settings.APP_HOST,
  41. port=settings.APP_PORT,
  42. reload=settings.DEBUG,
  43. )