demo_fastapi2.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from fastapi import FastAPI, APIRouter
  2. import uvicorn
  3. '''
  4. APIRouter。把它想象成 “文件夹/模块化工具箱”。
  5. 当你的项目只有 5 个接口时,全写在 app 上没问题;
  6. 但当你有 50 个接口(比如 qa、bid_review、qualification 模块),全挤在 app 上就会乱成一锅粥。
  7. APIRouter 的作用就是:
  8. 把同一组相关的接口(比如所有 /reviews 相关的)装进一个独立的“盒子”里,
  9. 最后再把盒子挂载到主 app 上。
  10. '''
  11. app = FastAPI()
  12. # 1. 创建一个路由器(像一个小型 App)
  13. # user_router = APIRouter(prefix="/users", tags=["用户"])
  14. user_router = APIRouter()
  15. bidder_router = APIRouter(prefix="/bidders", tags=["投标人"])
  16. # 2. 在这个路由器上定义接口(而不是在 app 上)
  17. @user_router.get("/")
  18. def get_users():
  19. return {"message": "获取用户列表"}
  20. @user_router.get("/{user_id}")
  21. def get_user(user_id: int):
  22. return {"message": f"获取用户 {user_id}"}
  23. @bidder_router.get("/")
  24. def get_bidders():
  25. return {"message": "获取投标人数据"}
  26. # 3. 将这个路由器挂载到主 app 上
  27. app.include_router(user_router, prefix="/users", tags=["用户"])
  28. app.include_router(bidder_router)
  29. if __name__ == "__main__":
  30. uvicorn.run(app, host="127.0.0.1", port=8000)