65 lines
2.9 KiB
Python
65 lines
2.9 KiB
Python
from fastapi import FastAPI, HTTPException
|
|
from fastapi.exceptions import RequestValidationError
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
from app.api.audit_logs import router as audit_logs_router
|
|
from app.api.auth import router as auth_router
|
|
from app.api.chat import router as chat_router
|
|
from app.api.contracts import router as contracts_router
|
|
from app.api.conversations import router as conversations_router
|
|
from app.api.files import router as files_router
|
|
from app.api.governance import router as governance_router
|
|
from app.api.knowledge_bases import router as knowledge_bases_router
|
|
from app.api.pilot_requests import router as pilot_requests_router
|
|
from app.api.review_rules import router as review_rules_router
|
|
from app.api.reviews import router as reviews_router
|
|
from app.api.system import router as system_router
|
|
from app.api.templates import router as templates_router
|
|
from app.api.tenant_settings import router as tenant_settings_router
|
|
from app.api.users import router as users_router
|
|
from app.core.config import settings
|
|
from app.core.response import error_response, success_response
|
|
|
|
app = FastAPI(title=settings.app_name)
|
|
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"],
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
app.include_router(auth_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(reviews_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(chat_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(contracts_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(conversations_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(files_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(governance_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(knowledge_bases_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(pilot_requests_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(review_rules_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(templates_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(tenant_settings_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(users_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(audit_logs_router, prefix=settings.api_v1_prefix)
|
|
app.include_router(system_router, prefix=settings.api_v1_prefix)
|
|
|
|
|
|
@app.exception_handler(HTTPException)
|
|
async def http_exception_handler(_request, exc: HTTPException):
|
|
return error_response(exc.detail, exc.status_code, exc.status_code)
|
|
|
|
|
|
@app.exception_handler(RequestValidationError)
|
|
async def validation_exception_handler(_request, exc: RequestValidationError):
|
|
first_error = exc.errors()[0] if exc.errors() else None
|
|
message = first_error.get("msg", "请求参数校验失败") if first_error else "请求参数校验失败"
|
|
return error_response(message, 422, 422)
|
|
|
|
|
|
@app.get("/health")
|
|
def health_check():
|
|
return success_response({"status": "ok"})
|