mcpField
F
fastapi-router-py

fastapi-router-py

github.com/sickn33开发48.7k139 次安装今天更新
代码仓库

关于 fastapi-router-py

用于创建 FastAPI 路由器的技能,涵盖身份验证模式、响应模型和 HTTP 状态码,并提供可复用模板,强调 CRUD 路由中的所有者与租户授权检查。

主要功能

  1. 01FastAPI 路由器模板
  2. 02可选和必需身份验证模式
  3. 03响应模型与 HTTP 状态码
  4. 04所有者和租户授权指引

适用场景

  1. 01搭建 CRUD 路由器
  2. 02为 API 路由添加身份验证
  3. 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.txt
UPSTREAM-NOTICE.md
assets/
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)

集成步骤

  1. 在 src/backend/app/routers/ 中创建路由器
  2. 在 src/backend/app/main.py 中挂载
  3. 创建相应的 Pydantic 模型
  4. 根据需要创建服务层
  5. 添加前端 API 函数

适用场景

当任务与上述概述中描述的工作流或操作明确匹配时,可使用此技能。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必需的输入、权限、安全边界或成功标准,请停止并寻求澄清。

评论

支持 Markdown