Files
2026-09-12 23:12:15 +08:00

2.9 KiB

路由注册

路由注册是将模块的 Endpoint 挂载到应用的过程。所有模块的路由在 src/api/v1/router.py 中统一注册。

文件位置

src/api/v1/router.py

注册步骤

第一步:导入路由

在 router.py 文件顶部的导入区域添加:

from api.v1.endpoints.position import router as position_router

第二步:挂载路由

在 register_router() 函数中添加:

v1.include_router(position_router, prefix="/position", tags=["岗位管理"])
参数 说明
position_router Endpoint 文件中创建的 APIRouter 实例
prefix="/position" 路由前缀,最终路径为 /api/v1/position/xxx
tags=["岗位管理"] Swagger 文档中的分组标签

完整上下文

# router.py 中的路由注册(简化示例)

from api.v1.endpoints.position import router as position_router
from api.v1.endpoints.level import router as level_router
from api.v1.endpoints.dept import router as dept_router
# ... 其他模块导入

def register_router(app):
    # 认证相关路由(免登录)
    app.include_router(auth_router, prefix="/api", tags=["认证管理"])

    # 业务模块路由(需登录)
    v1.include_router(position_router, prefix="/position", tags=["岗位管理"])
    v1.include_router(level_router, prefix="/level", tags=["职级管理"])
    v1.include_router(dept_router, prefix="/dept", tags=["部门管理"])
    # ... 其他模块注册

    # v1 路由组挂载到应用,带 login_required 中间件
    app.include_router(v1, prefix="/api/v1")

最终 API 路径

注册后,Position 模块的接口路径为:

方法 路径 说明
GET /api/v1/position/page 分页查询
GET /api/v1/position/detail/{id} 详情查询
GET /api/v1/position/list 列表查询
POST /api/v1/position/add 新增
PUT /api/v1/position/update 更新
DELETE /api/v1/position/delete/{id} 单条删除
DELETE /api/v1/position/batchDelete 批量删除
PUT /api/v1/position/status 状态变更

prefix 命名规范

规则 示例
使用小写英文 /position 而非 /Position
使用单数形式 /position 而非 /positions
多单词用驼峰或短横线 /jobLog 或 /job-log
与模块目录名一致 modules/system/position/ → /position

开发要点

  1. 只需两行代码:一行导入,一行注册
  2. prefix 与模块目录名保持一致:便于代码导航
  3. tags 使用中文:方便在 Swagger 文档中识别
  4. 所有业务路由都挂在 v1 路由组下:自动享受 login_required 认证保护

总结

路由注册在 src/api/v1/router.py 中统一管理,prefix 与模块目录名保持一致,tags 使用中文方便 Swagger 识别。所有业务路由挂在 v1 路由组下,自动享受 login_required 认证保护。