SuperAPI AI 工具集

api-design-framework

编程与开发

查看项目

更新于 10-16 04:27

技能介绍

用途

API Design Framework 是一个用于设计健壮、可扩展且对开发者友好的 API 的技能框架。无论构建 REST、GraphQL 还是 gRPC 服务,该框架都旨在保证一致性、可用性与可维护性。

适用场景包括:

  • 设计新的 API 端点或服务
  • 为团队或组织建立 API 约定
  • 审查 API 设计的一致性与最佳实践
  • 迁移或版本化现有 API
  • 创建 API 文档(OpenAPI、AsyncAPI)
  • 在 REST、GraphQL 或 gRPC 之间做选择

主要能力

API 设计原则

  1. 开发者体验优先:API 应当直观且自文档化,包括清晰一致的命名约定、可预测的行为与响应、完整的文档、有帮助的错误信息。
  2. 一致性优于取巧:遵循既有模式而非另创新法,包括标准 HTTP 方法与状态码(REST)、常规查询结构(GraphQL)、符合习惯的 proto 定义(gRPC)。
  3. 无破坏性演进:从第一天起就为变更而设计,包括 API 版本化策略、向后兼容考量、弃用政策、迁移路径。
  4. 性能内建:考虑性能影响,包括大数据集的分页、过滤与部分响应、缓存策略、限流。

随附资源

  • assets/openapi-template.yaml:OpenAPI 3.1 规范模板
  • assets/asyncapi-template.yaml:AsyncAPI 规范模板
  • references/rest-api.md:REST API 设计模式
  • references/graphql-api.md:GraphQL API 设计模式
  • references/grpc-api.md:gRPC API 设计模式
  • references/frontend-integration.md:前端 API 集成模式

协议参考

REST API 设计(见 references/rest-api.md)覆盖:资源命名约定(复数名词、层级关系)、HTTP 方法(GET、POST、PUT、PATCH、DELETE)、状态码(2xx、4xx、5xx)、请求/响应格式、分页(基于游标 vs 基于偏移)、过滤、排序、字段选择、API 版本化策略、限流响应头、认证模式(Bearer、API Key)。

GraphQL API 设计(见 references/graphql-api.md)覆盖:模式设计原则(默认可空)、列表的 Connection 模式(edges、nodes、pageInfo)、变更的输入类型、查询设计模式、字段级错误处理。

gRPC API 设计(见 references/grpc-api.md)覆盖:proto 文件结构、服务与消息定义、gRPC 状态码到 HTTP 等价码的映射。

前端 API 集成(见 references/frontend-integration.md)覆盖:使用 Zod 进行运行时校验、使用 ky 的请求拦截器、错误增强模式、TanStack Query 集成。

快速参考:HTTP 状态码

  • 200 OK:成功的 GET、PUT、PATCH
  • 201 Created:成功的 POST
  • 204 No Content:成功的 DELETE
  • 400 Bad Request:无效请求
  • 401 Unauthorized:缺少认证
  • 403 Forbidden:无权限
  • 404 Not Found:资源缺失
  • 409 Conflict:重复
  • 422 Unprocessable:校验失败
  • 429 Too Many Requests:被限流
  • 500 Internal Error:服务器错误

快速参考:错误响应格式

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Request validation failed",
    "details": [
      { "field": "email", "message": "Email is already registered" }
    ],
    "request_id": "req_abc123"
  }
}

常见陷阱

  • URL 中出现动词:应使用 POST /users,而非 POST /createUser
  • 命名不一致:应使用 /users、/orders,而非 /users、/userOrders
  • 忽略 HTTP 方法:应使用 DELETE /users/123,而非 POST /users/123/delete
  • 暴露内部实现:应使用 /users,而非 /users-table
  • 泛化错误:应使用“Email already exists”,而非“Something went wrong”

最佳实践摘要

  • 资源使用复数名词:/users、/orders
  • 多词使用 kebab-case:/user-preferences
  • 使用层级 URL:/users/123/orders
  • 大数据集使用游标分页
  • 公共 API 使用 URI 版本化:/api/v1/users
  • 在响应中包含限流响应头
  • 在前端边界使用 Zod 校验
  • 在错误响应中包含 request_id

使用方式

该技能以参考文档与模板资源的形式提供,按需加载。使用时可查阅对应的 references 文件获取 REST、GraphQL、gRPC 或前端集成的具体模式,并可直接使用 assets 中的 OpenAPI 3.1 与 AsyncAPI 模板。

与智能体集成

  • backend-system-architect:使用本框架设计新 API
  • frontend-ui-developer:审查契约并与 API 集成
  • code-quality-reviewer:依据标准校验 API 设计

相关技能

  • fastapi-advanced:本技能中 API 设计的 FastAPI 具体实现模式
  • error-handling-rfc9457:结构化错误响应的 RFC 9457 Problem Details 标准
  • api-versioning:超出本文基础范围的详细版本化策略
  • rate-limiting:高级限流实现与算法

关键决策

  • 分页默认:基于游标,理由是对大数据集更高效,在插入/删除下更稳定
  • 错误格式:带 request_id 的结构化 JSON,理由是便于调试、关联与一致的客户端处理
  • 版本化策略:URI 路径(/api/v1/),理由是最明确、适用于所有客户端、易于文档化
  • 资源命名:复数名词、kebab-case,理由是行业标准、一致、避免动词混淆

能力细节

  • rest-design:关键词 rest、restful、http、endpoint、route、path、resource、CRUD;解决如何设计 RESTful API、REST 端点模式与约定、HTTP 方法与状态码、API 版本化与分页。
  • graphql-design:关键词 graphql、schema、query、mutation、connection、relay;解决如何设计 GraphQL API、模式设计最佳实践、分页的 Connection 模式。
  • grpc-design:关键词 grpc、protobuf、proto、rpc、streaming;解决如何设计 gRPC 服务、proto 文件结构、gRPC 状态码。
  • endpoint-design:关键词 endpoint、route、path、resource、CRUD;解决如何组织 API 端点、某资源的最佳 URL 模式、RESTful 端点命名约定。
  • pagination:关键词 pagination、paginate、paging、offset、cursor、limit;解决如何为端点添加分页、游标 vs 偏移分页、分页最佳实践。
  • versioning:关键词 version、v1、v2、api version、breaking change;解决如何版本化 API、何时创建新 API 版本、URL vs 请求头版本化。
  • error-handling:关键词 error、exception、status code、error response、validation error;解决如何组织错误响应、使用哪些 HTTP 状态码、错误信息最佳实践。
  • rate-limiting:关键词 rate limit、throttle、quota、requests per second、429;解决如何实现限流、限流响应头与响应、分层限流策略。
  • authentication:关键词 auth、authentication、bearer、jwt、oauth、api key;解决如何保护 API 端点、JWT vs API Key 认证、API 的 OAuth2 流程。
  • frontend-integration:关键词 zod、validation、fetch、ky、tanstack、react-query;解决如何以类型安全方式消费 API、API 响应的运行时校验、请求拦截器与错误处理。

版本信息

技能版本:1.2.0;最后更新:2026-01-14。

变更日志:

  • v1.2.0(2026-01-14):拆分为参考文件以支持渐进式加载;新增 references/rest-api.md、references/graphql-api.md、references/grpc-api.md、references/frontend-integration.md;修复格式错误的 YAML frontmatter。
  • v1.1.0(2025-12-29):新增前端 API 集成章节;新增 Zod 运行时校验模式;新增使用 ky 的请求拦截器;新增 TanStack Query 集成示例。

限制

资料未提供该技能的收费、价格、平台支持范围或具体安装命令等信息,暂未提供。