SuperAPI AI 工具集

api-designer

编程与开发

查看项目

更新于 10-15 10:40

技能介绍

用途

API Designer 提供 REST 与 GraphQL API 架构方面的专业能力,重点覆盖 OpenAPI 3.1 规范、API 版本化策略、分页模式以及超媒体驱动设计(HATEOAS)。其目标是构建可扩展、文档完善、对开发者友好的 API,并统一错误处理与标准化。

主要能力

  • 根据需求设计 RESTful 或 GraphQL API
  • 创建用于 API 文档的 OpenAPI 3.1 规范
  • 实现 API 版本化策略(URL、请求头、内容协商)
  • 为大数据集设计分页、过滤与排序模式
  • 构建符合 HATEOAS 的 API(超媒体驱动)
  • 跨服务统一错误响应与状态码
  • 设计 API 认证与授权模式

使用方式

该技能以工作流方式运作。以“设计带 OpenAPI 3.1 的 RESTful API”为例,流程包括:

  1. 资源建模:识别资源(如 Products、Categories、Reviews、Inventory),设计 URL 结构,例如:
GET    /v1/products              # List products (paginated)
POST   /v1/products              # Create product
GET    /v1/products/{id}         # Get product details
PUT    /v1/products/{id}         # Update product (full replacement)
PATCH  /v1/products/{id}         # Partial update
DELETE /v1/products/{id}         # Delete product

GET    /v1/products/{id}/reviews        # Get reviews for product
POST   /v1/products/{id}/reviews        # Create review
GET    /v1/products/{id}/reviews/{reviewId}  # Get specific review

GET    /v1/categories            # List categories
GET    /v1/categories/{id}       # Get category + subcategories

查询参数示例:

GET /v1/products?category=electronics&min_price=100&max_price=500&sort=price:asc&limit=20&cursor=abc123
  1. 编写 OpenAPI 3.1 规范(openapi.yaml),包含 info、servers、paths、components(schemas、responses、securitySchemes)等部分。规范中定义了分页响应结构(data、meta、links)、错误响应结构(error.code、error.message、error.details)以及安全方案(ApiKey、BearerAuth)。

  2. 生成文档,可使用 Redoc CLI 或 Swagger UI:

# Install Redoc CLI
npm install -g redoc-cli

# Generate static HTML documentation
redoc-cli bundle openapi.yaml -o api-docs.html

# Host documentation
npx serve api-docs.html

# Interactive Swagger UI
docker run -p 8080:8080 -e SWAGGER_JSON=/docs/openapi.yaml \
  -v $(pwd):/docs swaggerapi/swagger-ui

# Open http://localhost:8080 for interactive API testing

适用场景

  • 从需求出发设计 RESTful 或 GraphQL API
  • 为 API 文档创建 OpenAPI 3.1 规范
  • 实现 API 版本化策略
  • 为大数据集设计分页、过滤与排序
  • 构建 HATEOAS 兼容 API
  • 跨服务统一错误响应与状态码
  • 设计 API 认证与授权模式

限制与不适用场景

以下情况不应调用该技能:

  • 仅实现已设计好的 API 端点(应使用 backend-developer)
  • 无 API 上下文的数据库模式设计(应使用 database-administrator)
  • 前端 API 集成(应使用 frontend-developer)
  • API 安全实现(认证/授权应使用 security-engineer)
  • API 性能优化(应使用 performance-engineer)

反模式提示

资料中特别指出“不一致的错误响应”是常见反模式:不同端点返回不同结构的错误(如 {"error": "Invalid credentials"}、{"errors": [...]}、{"status": "error", "message": ..., "code": 500}),会导致客户端需要为每个端点编写自定义错误处理、前端开发者体验差、错误日志与监控困难。正确做法是统一错误响应结构,例如:

{
  "error": {
    "code": "invalid_credentials",
    "message": "The provided email or password is incorrect",
    "details": null,
    "request_id": "req_abc123"
  }
}

校验错误可包含多个字段:

{
  "error": {
    "code": "validation_failed",
    "message": "One or more fields failed validation",
    "details": {
      "fields": [
        { "field": "email", "message": "Invalid email format" },
        { "field": "password", "message": "Password must be at least 8 characters" }
      ]
    },
    "request_id": "req_def456"
  }
}

客户端可据此编写一致的错误处理逻辑。

集成模式

  • 与 backend-developer:API Designer 创建规范,后端实现端点;协作错误响应格式与认证模式;工具包括 OpenAPI 代码生成、API 模拟。
  • 与 frontend-developer:API 规范发布后前端消费;协作查询模式、分页、错误处理;工具包括从 OpenAPI/GraphQL schema 生成 TypeScript 类型。
  • 与 security-engineer:API Designer 定义认证需求,安全工程师实现认证;协作限流、API 密钥管理、OAuth 流程;关键点包括 JWT 校验、API 网关安全策略。
  • 与 devops-engineer:API 设计定稿后 DevOps 部署 API 网关;协作 API 版本化部署、蓝绿发布;工具包括 Kong、AWS API Gateway、Traefik 配置。