from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from app.api.endpoints import user, address, community, station, order, coupon 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(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.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 ) )