返回顶部

Fastapi 脚本接口规范优化

Fastapi 脚本接口规范优化

在编写Fastapi脚本提供自动化接口操作时,我们不仅要实现接口功能实用性,也要考虑接口的规范管理,这边以Fastapi官方文档作为一个切入点。

官方接口文档

默认官方接口文档如下图所示,宛如大杂烩一样

/doc接口文档

 /redoc接口文档

 

优化方案

1、根据功能分组

2、根据权限分组

3、根据影响范围分组

这边采用根据影响范围分组,即将全局查询和单个用户增删改查进行分组

代码实现

修改代码如下:

from fastapi import FastAPI, HTTPException, Depends, APIRouter

# 初始化FastAPI应用
# app = FastAPI()

#创建APIRouter实例
router = APIRouter(
    prefix="/api",
    tags=["用户管理"]
)
ALLrouter = APIRouter(
    prefix="/all",
    tags=["全局用户管理"]
)

# 创建用户模型相关路由和操作
@router.post("/users/", response_model=UserOut, summary='创建用户')
def create_user(user: UserCreate, db: Session = Depends(get_db)):
    。。。

@router.delete("/users/{user_id}", response_model=UserOut, summary='删除用户')
def delete_user(user_id: int, db: Session = Depends(get_db)):
    。。。

@router.get("/users/{user_id}", response_model=UserOut, summary='查看单个用户')
def get_user(user_id: int, db: Session = Depends(get_db)):
    。。。


@router.put("/users/{user_id}", response_model=UserOut, summary='修改用户')
def update_user(user_id: int, user_update: UserUpdate, db: Session = Depends(get_db)):
    。。。


@ALLrouter.get("/user/auth/role", response_model=List[UserOut], summary='查看所有用户')
def  get_all_users(db: Session = Depends(get_db)):
    。。。

@ALLrouter.get("/users", response_model=List[UserOut], summary='查看所有用户')
def  get_all_users(db: Session = Depends(get_db)):
    。。。

# 创建 FastAPI 应用实例
app = FastAPI()

# 将 APIRouter 路由器包含到应用实例中
app.include_router(router)
app.include_router(ALLrouter)

查看接口文档

 测试验证接口

最重要一点保证接口可用性,及时验证接口,测试接口路由正确原有接口不可用,可以使用本地工具postman、curl工具或者接口文档请求都可以。

 

 

posted @ 2024-07-04 13:41  九尾cat  阅读(49)  评论(0编辑  收藏  举报