关于 fastapi-router-py
用于创建 FastAPI 路由器的技能,涵盖身份验证模式、响应模型和 HTTP 状态码,并提供可复用模板,强调 CRUD 路由中的所有者与租户授权检查。
主要功能
- 01FastAPI 路由器模板
- 02可选和必需身份验证模式
- 03响应模型与 HTTP 状态码
- 04所有者和租户授权指引
适用场景
- 01搭建 CRUD 路由器
- 02为 API 路由添加身份验证
- 03检查 CRUD 端点的所有权校验
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill fastapi-router-py安装后在 Claude Code 中输入/fastapi-router-py确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
UPSTREAM-LICENSE.txtUPSTREAM-NOTICE.mdassets/template.py详细介绍
捆绑的上游支持文件
支持文件位于相对于技能的路径中。有关其固定来源、许可证、哈希值和导入变更,请参阅 UPSTREAM-NOTICE.md。
FastAPI 路由器
按照既定模式创建 FastAPI 路由器,并正确配置身份验证、响应模型和 HTTP 状态码。
授权要求
模板假定存在 author_id 所有者字段;使用前请根据实际模型进行调整。更新和删除检查是必需的,不能省略。对于非公开资源,列表和获取操作也需要身份验证及租户/所有者筛选,最好通过原子服务查询实现;仅有身份验证并不等于授权。请针对每条 CRUD 路由测试匿名访问、其他所有者和其他租户的访问情况。在替换占位符并完成集成之前,占位符模板不是可执行的 Python 代码。
快速开始
从 assets/template.py 复制模板并替换占位符:
{{ResourceName}}→ PascalCase 名称(例如:Project){{resource_name}}→ snake_case 名称(例如:project){{resource_plural}}→ 复数形式(例如:projects)
身份验证模式
# Optional auth - returns None if not authenticated
current_user: Optional[User] = Depends(get_current_user)
# Required auth - raises 401 if not authenticated
current_user: User = Depends(get_current_user_required)
响应模型
@router.get("/items/{item_id}", response_model=Item)
async def get_item(item_id: str) -> Item:
...
@router.get("/items", response_model=list[Item])
async def list_items() -> list[Item]:
...
HTTP 状态码
@router.post("/items", status_code=status.HTTP_201_CREATED)
@router.delete("/items/{id}", status_code=status.HTTP_204_NO_CONTENT)
集成步骤
- 在
src/backend/app/routers/中创建路由器 - 在
src/backend/app/main.py中挂载 - 创建相应的 Pydantic 模型
- 根据需要创建服务层
- 添加前端 API 函数
适用场景
当任务与上述概述中描述的工作流或操作明确匹配时,可使用此技能。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必需的输入、权限、安全边界或成功标准,请停止并寻求澄清。
评论
支持 Markdown