from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.api.endpoints import user, address, community, station, order, coupon, community_building, upload from app.models.database import Base, engine from fastapi.exceptions import RequestValidationError from fastapi.responses import JSONResponse from app.core.response import error_response from fastapi import HTTPException # 创建数据库表 Base.metadata.create_all(bind=engine) app = FastAPI( title="闪兔到家", description="API 文档", version="1.0.0" ) # 配置 CORS app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # 添加用户路由 app.include_router(user.router, prefix="/api/user", tags=["用户"]) app.include_router(address.router, prefix="/api/address", tags=["配送地址"]) app.include_router(community.router, prefix="/api/community", tags=["社区"]) app.include_router(community_building.router, prefix="/api/community/building", tags=["社区楼栋"]) app.include_router(station.router, prefix="/api/station", tags=["驿站"]) app.include_router(order.router, prefix="/api/order", tags=["订单"]) app.include_router(coupon.router, prefix="/api/coupon", tags=["优惠券"]) app.include_router(upload.router, prefix="/api/upload", tags=["文件上传"]) @app.get("/") async def root(): return {"message": "欢迎使用 FastAPI!"} @app.get("/health") async def health_check(): return {"status": "healthy"} @app.exception_handler(RequestValidationError) async def validation_exception_handler(request, exc): return JSONResponse( status_code=400, content=error_response( code=400, message=str(exc) ) ) @app.exception_handler(HTTPException) async def http_exception_handler(request, exc): return JSONResponse( status_code=exc.status_code, content=error_response( code=exc.status_code, message=exc.detail ) )