mcpField
A
api-patterns

api-patterns

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

关于 api-patterns

api-patterns 是一项依据 API 使用方和部署约束选择设计方案的技能,涵盖 API 风格、响应格式、版本管理、认证、限流、文档与安全检查。

主要功能

  1. 01选择 API 风格
  2. 02REST、GraphQL 与 tRPC 指引
  3. 03响应与分页设计
  4. 04版本管理与认证选择
  5. 05限流和文档建议
  6. 06本地启发式源码扫描

适用场景

  1. 01定义新端点契约
  2. 02为已知使用方选择 API 风格
  3. 03规划分页或兼容性变更
  4. 04在授权测试范围内检查 API 安全

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill api-patterns

安装后在 Claude Code 中输入/api-patterns确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

rest.md
auth.md
api-style.md
response.md
documentation.md
graphql.md
rate-limiting.md
security-testing.md
trpc.md
versioning.md
scripts/
api_validator.py

详细介绍

API 模式

与消费方及部署约束相关的 API 设计决策。 学会思考,而非照搬固定模式。

🎯 选择性阅读规则

只阅读与请求相关的文件! 查看内容地图,找到你需要的内容。


📑 内容地图

文件描述何时阅读
api-style.mdREST vs GraphQL vs tRPC 决策树选择 API 类型时
rest.md资源命名、HTTP 方法、状态码设计 REST API 时
response.md信封模式、错误格式、分页响应结构
graphql.mdSchema 设计、何时使用、安全考虑 GraphQL 时
trpc.mdTypeScript monorepo、类型安全TS 全栈项目
versioning.mdURI/Header/Query 版本控制API 演进规划
auth.mdJWT、OAuth、Passkey、API Keys认证模式选择
rate-limiting.md令牌桶、滑动窗口API 保护
documentation.mdOpenAPI/Swagger 最佳实践文档
security-testing.mdOWASP API Top 10、认证/授权测试安全审计

🔗 相关技能

需求技能
API 实现@[skills/backend-architect]
数据结构@[skills/database-design]
安全细节@[skills/api-security-best-practices]

✅ 决策清单

在设计 API 之前:

  • 询问过用户关于 API 消费方的情况?
  • 针对此上下文选择了 API 风格?(REST/GraphQL/tRPC)
  • 定义了统一的响应格式?
  • 规划了版本控制策略?
  • 考虑了认证需求?
  • 规划了速率限制?
  • 定义了文档方案?

❌ 反模式

不要:

  • 默认对所有场景使用 REST
  • 在 REST 端点中使用动词(/getUsers)
  • 返回不一致的响应格式
  • 向客户端暴露内部错误
  • 跳过速率限制

要:

  • 根据上下文选择 API 风格
  • 询问客户端需求
  • 详尽地编写文档
  • 使用适当的状态码

脚本

脚本用途命令
scripts/api_validator.py本地启发式源码扫描(非 schema 验证)python3 skills/api-patterns/scripts/api_validator.py <project_path>

何时使用

在定义新的端点契约、为已知消费方选择 REST/GraphQL/tRPC,或更改分页、错误、认证或兼容性行为时使用。对于现有契约内的 bug,保留该契约,除非任务授权进行更改。

输入与流程

记录消费方和已部署版本、预期载荷大小、访问规则、兼容性义务以及一个具体操作。阅读地图中的相关文件,比较现实可行的选择,然后指定请求/响应示例和拒绝情况。在构建时共享的类型并不能确保独立部署的客户端保持兼容。

完整示例

输入:一个公开的订单列表在客户端分页浏览时发生变化。选择一个有界分页大小和基于稳定 (created_at, id) 顺序的游标。定义下一个游标的格式、授权过滤条件以及记录被删除或游标无效时的行为。测试两个相同的时间戳和分页之间的插入。预期:在承诺的快照语义内没有重复的 ID;记录新插入的行是否可能出现。

限制

  • Python 辅助脚本使用正则表达式和浅层 JSON/YAML 检查,最多扫描 15 个匹配文件。其输出是分类提示,而非 OpenAPI 验证、授权审计或部署批准。
  • GraphQL 查询形状、tRPC 推断和 HTTP 方法名称并不强制实施资源授权或向后兼容性。
  • 速率限制本身无法防止所有资源耗尽;大小、并发、时间和提供商成本边界取决于具体操作。
  • 仅针对已授权的本地/测试目标,使用隔离账户和已定义的范围执行安全检查。

评论

支持 Markdown