mcpField
A
api-design-patterns

api-design-patterns

github.com/asyrafhussin开发95947 次安装9 周前更新
代码仓库

关于 api-design-patterns

用于设计和评审 RESTful API 的规范技能,包含资源设计、错误处理、安全、分页、版本管理、响应格式和文档规则。适用于从新端点规划到现有 API 检查的工作。

主要功能

  1. 01资源命名与 HTTP 方法规范
  2. 02错误响应与验证信息设计
  3. 03认证、授权及输入安全建议
  4. 04分页、筛选与排序模式
  5. 05API 版本管理指导
  6. 06OpenAPI 文档规则

适用场景

  1. 01规划新的 REST API 端点
  2. 02评审现有 API 的结构
  3. 03设计分页、筛选和排序参数
  4. 04编写 OpenAPI 或 Swagger 文档

安装

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

$npx skills add https://github.com/asyrafhussin/agent-skills --skill api-design-patterns

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

包含的文件

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

AGENTS.md
metadata.json
README.md
rules/
_sections.md
_template.md
doc-changelog.md
doc-examples.md
doc-openapi.md
error-consistent-format.md
error-error-codes.md
error-meaningful-messages.md
error-no-stack-traces.md
error-request-id.md
error-validation-details.md
filter-query-params.md
page-consistent-params.md
page-cursor-based.md
page-metadata.md
page-offset-based.md
resp-compression.md
resp-consistent-structure.md
resp-json-conventions.md
resp-partial-responses.md
rest-hateoas.md
rest-http-methods.md
rest-idempotency.md
rest-nested-resources.md
rest-nouns-not-verbs.md
rest-plural-resources.md
rest-resource-actions.md

详细介绍

API 设计模式

构建一致且对开发者友好的 API 的 RESTful API 设计原则。包含 7 个类别的 38 条规则,涵盖资源设计、错误处理、安全性、分页、版本控制、响应格式和文档。

元数据

  • 版本: 2.0.0
  • 规则数量: 7 个类别共 38 条规则
  • 许可证: MIT

适用场景

在以下情况下可参考这些指南:

  • 设计新的 API 端点
  • 审查现有 API 结构
  • 实施错误处理和验证
  • 设置分页、筛选和排序
  • 规划 API 版本控制策略
  • 配置 API 安全性(身份验证、CORS、速率限制)
  • 编写 API 文档(OpenAPI/Swagger)

按优先级划分的规则类别

优先级类别影响前缀
1资源设计严重rest-
2错误处理严重error-
3安全性严重sec-
4分页与筛选高page-、filter-、sort-
5版本控制高ver-
6响应格式中resp-
7文档中doc-

快速参考

1. 资源设计(严重)
  • rest-nouns-not-verbs - 端点使用名词,而非动词
  • rest-plural-resources - 使用复数资源名称
  • rest-http-methods - 正确使用 HTTP 方法(GET、POST、PUT、PATCH、DELETE)
  • rest-nested-resources - 正确嵌套资源(最多 2 层)
  • rest-status-codes - 使用恰当的 HTTP 状态码
  • rest-idempotency - 使用幂等键实现幂等操作
  • rest-hateoas - 使用超媒体链接以便于发现
  • rest-resource-actions - 将非 CRUD 操作作为子资源
2. 错误处理(严重)
  • error-consistent-format - 保持错误响应结构一致
  • error-meaningful-messages - 提供有帮助且可操作的错误消息
  • error-validation-details - 提供字段级验证错误
  • error-error-codes - 提供机器可读的错误代码
  • error-no-stack-traces - 绝不在生产环境中暴露堆栈跟踪
  • error-request-id - 包含请求 ID 以便调试
3. 安全性(严重)
  • sec-authentication - 正确实施身份验证(OAuth2/JWT)
  • sec-authorization - 设置资源级权限(RBAC)
  • sec-rate-limiting - 通过速率限制防止滥用
  • sec-input-validation - 验证并清理所有输入
  • sec-cors-config - 使用白名单配置 CORS
  • sec-https-only - 强制所有流量使用 HTTPS
  • sec-sensitive-data - 保护密码、令牌和个人身份信息
4. 分页与筛选(高)
  • page-cursor-based - 对大型数据集使用游标分页
  • page-offset-based - 在简单场景中使用偏移分页
  • page-consistent-params - 保持参数命名一致
  • page-metadata - 在响应中包含分页元数据
  • filter-query-params - 通过查询参数进行筛选
  • sort-flexible - 支持灵活排序,使用 - 前缀表示降序
5. 版本控制(高)
  • ver-url-path - 在 URL 路径中指定版本(/api/v1/)
  • ver-header-based - 通过 Accept 标头指定版本
  • ver-backward-compatible - 保持向后兼容
  • ver-deprecation - 使用 Sunset 标头制定弃用策略
6. 响应格式(中)
  • resp-consistent-structure - 保持响应封装结构一致
  • resp-json-conventions - 遵循 JSON 命名约定
  • resp-partial-responses - 支持选择字段(稀疏字段集)
  • resp-compression - 压缩响应(gzip/Brotli)
7. 文档(中)
  • doc-openapi - 提供 OpenAPI/Swagger 规范
  • doc-examples - 提供请求/响应示例
  • doc-changelog - 提供 API 更新日志

基本指南

资源命名
# ❌ Verbs in URLs
GET    /getUsers
POST   /createUser

# ✅ Nouns with HTTP methods
GET    /users          # List users
POST   /users          # Create user
GET    /users/123      # Get user
PUT    /users/123      # Update user (full)
PATCH  /users/123      # Update user (partial)
DELETE /users/123      # Delete user
错误响应格式
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The request contains invalid data",
    "details": [
      {
        "field": "email",
        "code": "INVALID_FORMAT",
        "message": "Please provide a valid email address"
      }
    ],
    "request_id": "req_abc123"
  }
}
分页
{
  "data": [...],
  "meta": {
    "current_page": 2,
    "per_page": 20,
    "total_pages": 10,
    "total_count": 195
  },
  "links": {
    "first": "/users?page=1&per_page=20",
    "prev": "/users?page=1&per_page=20",
    "next": "/users?page=3&per_page=20",
    "last": "/users?page=10&per_page=20"
  }
}
速率限制标头
HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 998
X-RateLimit-Reset: 1640995200

使用方法

阅读各条规则文件,了解详细说明:

rules/rest-http-methods.md
rules/error-consistent-format.md
rules/page-cursor-based.md
rules/sec-authentication.md
rules/ver-url-path.md
rules/doc-openapi.md

参考资料

完整编译文档

完整指南(包含展开后的所有规则):AGENTS.md

评论

支持 Markdown