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工具或者接口文档请求都可以。